我在更改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