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 L. escribió:

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:

/ …

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 L. escribió:

version installed. If I use the interactive console and write, for
You need to obtain a font that is appropriate to the language you are using.

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.

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 C. escribió:

Alfonso, this isn’t a problem of Ruby, but a problem of the Windows
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