不兼容的字符编码错误

时间:2013-07-10 16:52:18

标签: ruby

我正在尝试运行一个ruby脚本,该脚本从JSON文件生成翻译的HTML文件。但是我收到了这个错误:

incompatible character encodings: UTF-8 and CP850

红宝石

translation_hash = JSON.parse(File.read('translation_master.json').force_encoding("ISO-8859-1").encode("utf-8", replace: nil))

似乎陷入了JSON的这一行:

的Json

"3": "Klassisch geschnittene Anzüge",

因为有一个特殊字符"ü"。 JSON文件的编码是ANSI。什么想法可能是错的?

2 个答案:

答案 0 :(得分:2)

尝试将# encoding: UTF-8添加到ruby文件的顶部。这告诉ruby使用不同的编码来解释文件。如果这不起作用,请尝试找出文本使用的编码类型并相应地更改行。

答案 1 :(得分:1)

如果json文件的编码是“ISO-8859-1”并且它是有效的json文件,则恕我直言您的代码应该

因此,您应首先验证“ISO-8859-1”是否为正确的编码 顺便说一句,如果文件是一个有效的json文件。

# read the file with the encoding, you assume it is correct
json_or_not = File.read('translation_master.json').force_encoding("ISO-8859-1")

# print result and ckeck if something is obscure
puts json_or_not
相关问题