我有一个CSV文件。我用这个检查了它的编码:
File.open('C:\path\to\file\myfile.txt').read.encoding
它返回编码为:
=> #<Encoding:IBM437>
我正在每行读取这个CSV - 剥离空间和做其他事情。在“清理”之后,我将其推送到新文件。我是这样做的:
CSV.foreach(file_read, encoding: "IBM437:UTF-8") do |r|
# some code
CSV.open(file_appended, "a", col_sep: "|") do |csv|
csv << r
end
end
现在我的问题是,在我正在阅读的CSV中,有一个带有重音字符的单词 - 确切地说是Ñ。此字符将作为
\u2564
考虑到重音字符是该单词的重要组成部分,这是一个问题,我希望该字符按原样出现在新文件中。
我错过了什么吗?我试过了ff。来源:目的地编码,但无济于事:
我错过了什么吗?
这是我的ruby版本,就像你需要知道:
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]
提前致谢!
答案 0 :(得分:0)
下面的一行解决了我的问题:
Encoding.default_external = "iso-8859-1"
它告诉Ruby,正在读取的文件是用ISO-8859-1编码的,因此正确解释了Ñ字符。
归功于Darshan Computing的回答here。只需查看更新#2。