rubyencodingdiacriticsshoes

How can I read accented characters in ruby shoes?


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


Solution

  • 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"