我正在尝试运行一个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。什么想法可能是错的?
答案 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