我每次嘗試將散列轉換爲JSON字符串時都會收到Encoding::UndefinedConversionError - "\xC2" from ASCII-8BIT to UTF-8
。我試着用[.encode | .force_encoding](["UTF-8" | "ASCII-8BIT" ])
,鏈接.encode
與.force_encoding
,向後切換參數,但似乎沒有任何工作,所以我抓住了這樣的錯誤:Encoding :: UndefinedConversionError
begin
menu.to_json
rescue Encoding::UndefinedConversionError
puts $!.error_char.dump
p $!.error_char.encoding
end
如果菜單是續集的dataset.to_hash從一個MySQL數據庫的內容,utf8_general_ci編碼,並返回這樣的:
「\ XC2」
< #Encoding:ASCII-8BIT>
無論使用什麼.encode
/.force_encoding
,編碼都不會改變。我甚至試圖更換字符串.gsub!(/\\\xC2/)
沒有運氣。
任何想法?
1.你試過這個嗎? 'menu.force_encoding(「ISO-8859-1」)。encode(「UTF-8」)' 3,在所有.rb文件的頂部添加一個「#encoding」utf-8''字符串 3 。檢查你的環境設置你的終端中的'$ echo LC_CTYPE'是什麼意思? – Kashyap
步驟1是否失敗並出現錯誤?步驟2是否工作?對於步驟3,http://thegreyblog.blogspot.in/2012/02/ fix-mac-os-x-lions-ssh-utf-8-issues.html這個鏈接有你的程序必須運行的env設置,以避免你想避免這個問題。 – Kashyap