Encoding in windows (newby question)

When I write my scripts in Linux, there is no problem with the special characters, but on windows, the special characters of my language are not properly set (spanish). Example puts "español". I suppose for some reason ruby detects the correct charset in linux but not in windows. Could anyone say what is the reason for that, and the procedure to solve it?

Thanks in advance.

···

______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com

Alfonso wrote:

When I write my scripts in Linux, there is no problem with the special
characters, but on windows, the special characters of my language are
not properly set (spanish).

Define "not properly set." Leave nothing to the imagination. What did you
expect, and what did you get, under what circumstances?

Example puts "español". I suppose for some
reason ruby detects the correct charset in linux but not in windows.
Could anyone say what is the reason for that, and the procedure to solve
it?

The answer depends on where this happened, using what output device or
editor, etc, etc..

···

--
Paul Lutus
http://www.arachnoid.com

Paul Lutus escribió:

Alfonso wrote:

When I write my scripts in Linux, there is no problem with the special
characters, but on windows, the special characters of my language are
not properly set (spanish).
    
Define "not properly set." Leave nothing to the imagination. What did you
expect, and what did you get, under what circumstances?

Example puts "español". I suppose for some reason ruby detects the correct charset in linux but not in windows.
Could anyone say what is the reason for that, and the procedure to solve
it?
    
The answer depends on where this happened, using what output device or
editor, etc, etc..
  

I have tried this in two different computers with windows xp spanish version installed. If I use the interactive console and write, for example this line:

puts "ñ ó á é í"

then after presing enter, the result will be this: ñ ó á é í

Now, if I write the same with a text editor (I use vim, but have tried also with notepad), this is the result: ± ¾ ß Ú Ý

As opposite, in linux, the result is allways ñ ó á é í.

···

______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com

Alfonso wrote:

/ ...

The answer depends on where this happened, using what output device or
editor, etc, etc..
  

I have tried this in two different computers with windows xp spanish
version installed. If I use the interactive console and write, for
example this line:

puts "ñ ó á é í"

then after presing enter, the result will be this: ñ ó á é í

Now, if I write the same with a text editor (I use vim, but have tried
also with notepad), this is the result: ± ¾ ß Ú Ý

You need to obtain a font that is appropriate to the language you are using.
I want to emphasize that the characters in the file are very likely to be
correct, but their representation on the display is the only problem, and
that is a font issue.

In Windows, you have the option of changing locales, or installing an
appropriate font, or both. Specifically with regard to either Notepad or
VIM, see if you have the option of changing the editing font.

As opposite, in linux, the result is allways ñ ó á é í.

Linux is typically (but not always) more aware of locale issues. An example
is the fact that I am getting the correct accented character
representations here on Fedora 5's newsreader, and I doubt that I would on
a recent Windows version.

But again, it's very likely that the characters are correct, only their
display is wrong.

···

--
Paul Lutus
http://www.arachnoid.com

Paul Lutus escribió:

Alfonso wrote:

/ ...

The answer depends on where this happened, using what output device or
editor, etc, etc..
  

I have tried this in two different computers with windows xp spanish
version installed. If I use the interactive console and write, for
example this line:

puts "ñ ó á é í"

then after presing enter, the result will be this: ñ ó á é í

Now, if I write the same with a text editor (I use vim, but have tried
also with notepad), this is the result: ± ¾ ß Ú Ý
    
You need to obtain a font that is appropriate to the language you are using.
I want to emphasize that the characters in the file are very likely to be
correct, but their representation on the display is the only problem, and
that is a font issue.

In Windows, you have the option of changing locales, or installing an
appropriate font, or both. Specifically with regard to either Notepad or
VIM, see if you have the option of changing the editing font.

As opposite, in linux, the result is allways ñ ó á é í.
    
Linux is typically (but not always) more aware of locale issues. An example
is the fact that I am getting the correct accented character
representations here on Fedora 5's newsreader, and I doubt that I would on
a recent Windows version.

But again, it's very likely that the characters are correct, only their
display is wrong.

Sorry, I didn't expressed me correctly. When I said that if I type ñ ó á é í in the editor I have this result

± ¾ ß Ú Ý. I didn't mean that I couldn't see ñ ó á é í in the edited file. They appear just so: ñ ó á é í. The problem is after executing the program ("ruby myprogram.rb"). Then the result in the console will be this: ± ¾ ß Ú Ý. But the saved file has no problem with representation...

···

______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com

Alfonso wrote:

/ ...

Sorry, I didn't expressed me correctly. When I said that if I type ñ ó á
é í in the editor I have this result

± ¾ ß Ú Ý. I didn't mean that I couldn't see ñ ó á é í in the edited
file. They appear just so: ñ ó á é í. The problem is after executing the
program ("ruby myprogram.rb"). Then the result in the console will be
this: ± ¾ ß Ú Ý. But the saved file has no problem with representation...

Then the problem is most likely the console font. Same remedy -- change
fonts. Nearly all these sorts of problems are caused by using the wrong
font.

But if you want to distinguish between font issues and others, capture the
output of your program and load it into your editor, to confirm that the
characters appear correctly there.

···

--
Paul Lutus
http://www.arachnoid.com

Alfonso schrieb:

Sorry, I didn't expressed me correctly. When I said that if I type ñ ó á é í in the editor I have this result

± ¾ ß Ú Ý. I didn't mean that I couldn't see ñ ó á é í in the edited file. They appear just so: ñ ó á é í. The problem is after executing the program ("ruby myprogram.rb"). Then the result in the console will be this: ± ¾ ß Ú Ý. But the saved file has no problem with representation...

Alfonso, this isn't a problem of Ruby, but a problem of the Windows console. To verify, open Notepad and enter your letters, then save the file. In the console, do a "type myfile.txt" (replace with the actual filename). You'll see the same weird characters. The reason is that the Windows console uses a special character encoding.

If you want to convert the output of your Ruby programs to the character encoding of the Windows console, look at

   http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/225185

Regards,
Pit

Pit Capitain escribió:

Alfonso schrieb:

Sorry, I didn't expressed me correctly. When I said that if I type ñ ó á é í in the editor I have this result

± ¾ ß Ú Ý. I didn't mean that I couldn't see ñ ó á é í in the edited file. They appear just so: ñ ó á é í. The problem is after executing the program ("ruby myprogram.rb"). Then the result in the console will be this: ± ¾ ß Ú Ý. But the saved file has no problem with representation...

Alfonso, this isn't a problem of Ruby, but a problem of the Windows console. To verify, open Notepad and enter your letters, then save the file. In the console, do a "type myfile.txt" (replace with the actual filename). You'll see the same weird characters. The reason is that the Windows console uses a special character encoding.

If you want to convert the output of your Ruby programs to the character encoding of the Windows console, look at

  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/225185

Regards,
Pit

That's it. It works now, using iconv.

Thank you, Pit and Paul for your answers.

···

______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com