我如何阅读红宝石鞋中的重音人物?

时间:2018-02-10 14:23:10

标签: ruby encoding diacritics shoes

我不能在红宝石鞋做一件非常简单的事情。 代码是seguent:

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

如果在txt中有一个带有重音字符的单词,则代码不起作用。鞋子说“不是有效的UTF8字符串” 我怎样才能解决这个问题?

编辑:如果我删除行#encoding:UTF-8

,结果会相同

1 个答案:

答案 0 :(得分:0)

该行:

#encoding:UTF-8

仅管理您用于实际代码的字符。如果你使用最新版本的ruby,它什么都不做,因为默认情况下,ruby代码假定用UTF-8字符编写。

  

编辑:如果删除#encoding:UTF-8

行,结果是一样的

是的,那是因为你可能正在使用最新版本的ruby,这是默认版本。

您必须知道要阅读的文件的编码。如果文件是用ISO-8859-1编码的,你可以这样做:

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

您的文件中包含哪些字符?当你这样做时你会得到什么:

$ ruby -e"puts Encoding.default_external"