2013-07-10 77 views
2

我試圖運行一個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

看看這個物品─http://yehudakatz.com/2010/05/05/ruby-1-9-encodings-a-primer-and-the-solution-for-rails/ – Josh

+0

HI,我對ruby沒有太多的想法,我是一名前端開發人員,並獲得了腳本,我到底需要做什麼? – user1937021

回答

2

嘗試將# encoding: UTF-8添加到ruby文件的頂部。這告訴ruby用不同的編碼解釋文件。如果這不起作用,請嘗試找出文本使用的編碼類型,並相應地更改該行。

+0

嗨,你說的文本時,你的意思是JSON文件? – user1937021

+0

JSON文件的編碼是ANSI – user1937021

1

恕我直言你的代碼應該工作如果json文件的編碼是「ISO-8859-1」並且它是一個有效的json文件。

因此,如果文件是有效的json文件,您應該首先驗證「ISO-8859-1」是否是正確的編碼,並且 。

# 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 
+0

Uups我忘了問你的ruby版本。 2.0是好的1.9.3應該也可以,但我不確定。與1.8.7和更舊的東西是不同的。 – ovhaag

相關問題