How can I read accented characters in ruby shoes?

316 views Asked by At

I can't do a very simple thing in ruby shoes. The code is the seguent:

#encoding:UTF-8
Shoes.app do
@var = File.readlines('temp.txt')
para @var
end

If in the txt there is a word with an accented character, the code doesn't work. Shoes says "not a valid UTF8 string" How can I solve this problem???

edit: the result is the same if I remove the line #encoding:UTF-8

1

There are 1 answers

1
7stud On BEST ANSWER

The line:

#encoding:UTF-8

only governs the characters you use for your actual code. And if you are using a recent version of ruby, it does nothing because by default ruby code is assumed to be written with UTF-8 characters.

edit: the result is the same if I remove the line #encoding:UTF-8

Yes, that's because you are probably using a recent version of ruby, and that is the default.

You have to know the encoding of the file you want to read. If the file is encoded in ISO-8859-1, you can do:

@var = File.readlines('temp.txt', encoding: "ISO-8859-1")

What characters are in your file? What do you get when you do this:

$ ruby -e"puts Encoding.default_external"