我的文件编码遇到了一些问题。 可悲的是,到目前为止,我仍然没有对编码问题的所有内容保持良好的条件;虽然自从我开始使用Ruby 1.9以来我学到了很多东西。
我的问题:我有几个要处理的文件,预计是UTF-8格式。但我不知道如何正确批量转换这些文件;例如在Ruby中,我打开文件,将字符串编码为utf8并将其保存在另一个地方。
不幸的是,它不是如何完成的 - 文件仍然是ANSI。
至少那是我的Notepad ++所说的。
我发现它很奇怪,因为字符串清楚地编码为UTF-8,我甚至将 File.open 参数:encoding
设置为'UTF-8'
。我的shell设置为CP65001,我相信它也对应于UTF-8。
有什么建议吗? 非常感谢!
/ e:更重要的是,在Notepad ++中,我可以手动转换:
完成!逃脱字符消失,文件可以处理。
答案 0 :(得分:1)
不幸的是,这不是怎么做的 - 文件仍然是ANSI。至少那是我的Notepad ++所说的。
UTF-8被设计为ASCII的超集,这意味着大多数可打印的ASCII字符在UTF-8中是相同的。因此,除非您有“特殊”字符,否则无法区分ASCII和UTF-8。这些特殊字符使用UTF-8中的多个字节表示。
您的转换实际上很可能正常运行,但您可以通过尝试使用特殊字符来仔细检查。
此外,编码之间转换的最佳实用工具之一是iconv
,也是has ruby bindings。