Как заставить iconv игнорировать ошибки кодирования? - PullRequest
2 голосов
/ 05 октября 2010

У меня длинный текстовый файл с некоторыми недействительными закодированными символами в UTF-16.До сих пор я пытался преобразовать его, используя следующий код:

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 Ответ

0 голосов
/ 05 октября 2010
ic = Iconv.new( 'UTF-8//IGNORE', 'UTF-16' )
urf_8_str = (ic.iconv(bad_string) rescue 'oops, bad encoding')
...