2010-10-05 201 views
2

我有一個長文本文件,UTF-16中有一些invalidad編碼的字符。到目前爲止,我一直在嘗試使用以下代碼對其進行轉換:如何讓iconv忽略編碼錯誤?

ic = Iconv.new('UTF-8//IGNORE', 'UTF-16') 
urf_8_str = ic.iconv(an_invalid_encoded_utf_16_string) 

而且我得到一個Iconv :: InvalidCharacter異常。

我使用的是OS X 10.6(因爲它似乎的iconv實現是在Mac機有點特殊)和Ruby 1.8

你知道任何方式將字符串轉換在Ruby中與它無效字符?

謝謝!

回答

-1
ic = Iconv.new('UTF-8//IGNORE', 'UTF-16') 
urf_8_str = (ic.iconv(bad_string) rescue 'oops, bad encoding')