Ruby CSV将ñ写入其代码形式,而不是其实际形式
我有一个CSV文件。我使用以下方法检查了它的编码:Ruby CSV将ñ写入其代码形式,而不是其实际形式,ruby,csv,encoding,utf-8,iso-8859-1,Ruby,Csv,Encoding,Utf 8,Iso 8859 1,我有一个CSV文件。我使用以下方法检查了它的编码: File.open('C:\path\to\file\myfile.txt').read.encoding 它返回的编码为: => #<Encoding:IBM437> 考虑到重音字符是该单词的重要部分,这是一个问题,我希望该字符在新文件中显示为原样 我错过什么了吗?我试过了。来源:目标编码,但无效: ISO-8859-1:UTF8,反之亦然 ISO-8859-1:Windows-1252,反之亦然 我错过什么了吗 这是
File.open('C:\path\to\file\myfile.txt').read.encoding
它返回的编码为:
=> #<Encoding:IBM437>
考虑到重音字符是该单词的重要部分,这是一个问题,我希望该字符在新文件中显示为原样
我错过什么了吗?我试过了。来源:目标编码,但无效:
ISO-8859-1:UTF8,反之亦然
ISO-8859-1:Windows-1252,反之亦然
我错过什么了吗
这是我的ruby版本,如果您需要知道:
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]
提前谢谢 下面的一行解决了我的问题:
Encoding.default_external = "iso-8859-1"
它告诉Ruby,正在读取的文件是用ISO-8859-1编码的,因此正确地解释了ñ字符
Darshan Computing的答案值得称赞。只需查找更新2。您使用的是Ruby 1.9.3p392,它存在已知的安全漏洞!您应该尽快升级到最新的1.9.3,目前为1.9.3-p448或2.0。您好@AndrewMarshall。好的,我将升级到p448,但还没有升级到2.0,因为我有一个rails项目正在进行,它与我受命完成的ruby脚本无关。你认为升级会有助于解决编码问题吗?
ruby 1.9.3p392 (2013-02-22) [i386-mingw32]
Encoding.default_external = "iso-8859-1"