2

I'm trying to run a ruby script which generates translated HTML files from a JSON file. However I get this error:

incompatible character encodings: UTF-8 and CP850

Ruby

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

It seems to get stuck on this line of the JSON:

Json

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

because there is a special character "ü". The JSON file's encoding is ANSI. Any ideas what could be wrong?

4

2 回答 2

2

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

于 2013-07-10T19:59:26.433 回答
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
于 2013-07-11T00:57:41.797 回答