Перекодировка
Перекодировка испорченного текста.
- http://2cyr.com/decode/ - Универсальный декодер кириллицы
- http://2cyr.com/decode/?lang=uk - Універсальний автоматичний декодер Кирилиці
- http://www.artlebedev.ru/tools/decoder/ - Декодер Лебедева
Источник: http://k001.livejournal.com/557096.html
Если у вас есть некий текст на русском, но в виде кракозябр: Ïåðåêîäèðîâêà, то его можно раскодировать:
iconv -f utf-8 -t iso-8859-1 | iconv -f cp1251 -t utf-8
Например:
echo "Ïåðåêîäèðîâêà" | iconv -f utf-8 -t iso-8859-1 | iconv -f cp1251 -t utf-8 Перекодировка
В некоторых случаях, если вышеуказанная мантра не работает, вместо cp1251 можно попробовать koi8-r.
echo 'Привет' | iconv -fkoi-8 -t koi-7 | tr A-Za-z a-zA-Z Priwet
Мне больше konwert нравится:
konwert utf8-iso1+cp1251-utf8
Или, чтобы транслит сделать:
$ echo Привет | konwert utf8-iso1 Privet
Или чтобы HTML заескейпить перед постингом:
konwert txt-htmlchar
Или переводы строк поменять:
konwert lf
Кстати, полученное из koi8-r ""ðÅÒÅËÏÄÉÒÏ×ËÁ", довольно легко отличить по внешнему виду — маленькие буквы перешли в большие кракозябры.
Можно просто использовать частотный метод для определения последовательности фильтров - поучить его чуть-чуть и всё.
Уже есть, называется enca:
echo "Ïåðåêîäèðîâêà" | enca Universal transformation format 8 bits; UTF-8 Doubly-encoded to UTF-8 from ISO-8859-5 echo "Ïåðåêîäèðîâêà" | iconv -f utf-8 -t iso-8859-1 | enconv Перекодировка
Источник: http://cyberzx.blogspot.com/2007/12/blog-post.html
Допустим вам пришло сообщение "äîïóñòèì âàì ïğèøëî ñîîáùåíèå". И ваш зоркий глаз в нём сразу же увидел кодировку cp1251 набранную символами западноевропейской кодировки iso8859-9
Казалось бы дело за малым. Первое, что хочется сделать это скопировать текст сообщения в файл(жалко нет устройства /dev/clipboard) и выполнить над ним операцию iconv -f iso8859-9 -t cp1251.
Но почему-то iconv вежливо ругнётся, указав на ошибки в последовательности. Ну конечно же. Ведь тех символов, которые мы видим в сообщении, нет и в помине в кодировке cp1251.
Важно понять, iconv не делает текстовой конвертации, как это получается в редакторах или браузере при смене кодировки. Он делает бинарную конвертацию, оставляя сами симвы, меня лишь их двоичное представление.
В данном случае нам нужна двухступенчатая конвертация. Зашифрованное сообщение мы видим в системной кодировке(у меня это utf8). Из неё нужно получить двоичное представление в однобайтовой кодировке. Поэтому делаем iconv -f utf8 -t iso8859-9. Выход этой комнады и является исходным сообщением, но уже в кодировке cp1251. Которую мы преобразуем в системную, что бы увидеть текст. Вся операция расшифровки будет выглядеть следующим образом:
echo äîïóñòèì âàì ïğèøëî ñîîáùåíèå | iconv -t iso8859-9 | iconv -f cp1251
Бывают абоненты, от которых из аськи приходит кривой текст. Это происходит, когда ты в оффлайне, и сообщение, написанное в CP1251, «ждёт» тебя на сервере. Вот в этой комнате ожидания его и портят.