如何阅读 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"
穿着 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"