Как перекодировать русский текст в utf-8 используя Ruby?
Посоветуйте пожалуйста какой нибудь гем для автоматического определения кодировки, который бы работал с русскими символами.
В качестве примера, нужно распознать кодировку и перекодировать в utf-8 текст название русской песни:
Вход: ÌÎÐÑÊÀß ×ÅÐÅÏÀØÊÀ
Выход: МОРСКАЯ ЧЕРЕПАШКА
Штука в том, что проблемы "битых" кодировок бывают двух видов (по крайней мере тех, о которых мне известно): выбрана неправильная кодовая таблица и однобайтная кодировка приведена к двух- или многобайтной при помощи неправильной кодовой таблицы. Лечатся эти случаи по-разному. Есть такая программа, enca, она умеет понимать кодировку. Если входные данные передать в latin1, то она кодировку поймет, если же в битом UTF, то не сможет. Отсюда и был мой вопрос.
vsadm: Скорее всего LATIN1, еще раз испорченный преобразованием в UTF8. Данные изначально хранятся тоже в utf-8, как перевести в корректный latin1 (она же windows-1252) я не знаю.
Спасибо! Данные изначально хранятся тоже в utf-8, как перевести в корректный latin1 (она же windows-1252) я не знаю.
Сейчас detect_and_convert на выход отдает тот же текст, что и на входе ((
Павел Бакин: кодирую не я) Задача в том, что у меня есть коллекция песен, часть русских песен имеет такие вот id3 тэги (например: title: ÌÎÐÑÊÀß ×ÅÐÅÏÀØÊÀ), хочется автоматически перекодировать эти кракозябры.