Hy,
У меня была точно такая же проблема.
Эти советы помогли мне войти:
Всегда проверяйте правильное имя кодировки для правильной подачи ваших инструментов преобразования.
В случае сомнений вы можете получить список поддерживаемых кодировок для iconv или перекодировать, используя:
$ recode -l
или
$ iconv -l
Всегда начинайте с исходного файла и кодируйте образец для работы:
$ recode windows-1252..u8 < original.txt > sample_utf8.txt
или
$ iconv -f windows-1252 -t utf8 original.txt -o sample_utf8.txt
Установите Ruby1.9, потому что это поможет вам много, когда дело доходит до кодирования. Даже если вы не используете его в своей программе, вы всегда можете запустить сеанс irb1.9 и выбрать строки, чтобы увидеть, что выводится.
File.open имеет новый параметр 'mode' в Ruby 1.9. Используй это!
Эта статья очень помогла: http://blog.nuclearsquid.com/writings/ruby-1-9-encodings
File.open('original.txt', 'r:windows-1252:utf-8')
# This opens a file specifying all encoding options. r:windows-1252 means read it as windows-1252. :utf-8 means treat it as utf-8 internally.
Веселись и много клянись!