如何阅读 ruby 鞋中的重音字符?

How can I read accented characters in ruby shoes?

穿着 ruby 鞋我做不了一件很简单的事。 代码如下:

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

如果文本中有带重音字符的单词,则代码无效。鞋子说 "not a valid UTF8 string" 我该如何解决这个问题???

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

,结果是一样的

行:

#encoding:UTF-8

仅管理您在实际代码中使用的字符。如果您使用的是 ruby 的最新版本,它不会执行任何操作,因为默认情况下 ruby 代码被假定为使用 UTF-8 字符编写。

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

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

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

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

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

$ ruby -e"puts Encoding.default_external"