我在更改Ruby 1.9.2p290中的文本文件上的编码时遇到问题。我收到UTF-8(ArgumentError)中的无效字节序列错误。问题(我认为)在于charset似乎是未知的事实。更改字符编码
在命令行,如果我做到以下几点:
$ file test.txt
我得到:
Non-ISO extended-ASCII English text, with CRLF line terminators
,或者,如果我这样做:
$ file -i test.txt
我得到:
test.txt: text/plain; charset=unknown
然而,在Ruby中,如果我这样做:
data = File.open("test.txt").read
puts data.encoding.name
puts data.valid_encoding?
我得到:
UTF-8
false
这里是我的代码简单的代码片段:
data = File.open("test.txt").read
data.encode!("UTF-8")
data.each_line do |line|
newfile_data << line
end
不该文件包含任何奇特的字符?你是如何创建文件/它保存为什么的? – deceze 2011-12-23 03:56:28