LINUX.ORG.RU
решено ФорумTalks

[торможу] Последовательность перекодировки.


0

0

Всем добрый вечер.

Имеем такую жуткую ситуацию: текст пришёл в utf8, был воспринят программой как cp1251 и перекодирован в koi8-r. Подскажите последовательность операций для iconv, которая вернёт оригинальный текст в utf8. У меня мозг сегфолтится...

Вопрос, вроде, не сильно технический, а Линукс тут при том, что всё это в нём и происходит.

★★★★★

Последнее исправление: GotF (всего исправлений: 1)

посмотри в hex-редакторе, там скорее всего одни знаки вопроса и восстанавливать уже нечего

nu11 ★★★★★
()

> Вопрос, вроде, не сильно технический, а Линукс тут при том, что всё это в нём и происходит.

А какой он, по-твоему? Или ты хочешь обсудить этические аспекты твоего проступка?

d_a ★★★★★
()
Ответ на: комментарий от nu11

М-да... Количество одинаковых байтов явно слишком большое. Спасибо, похоже действительно неизлечимо.

GotF ★★★★★
() автор топика
Ответ на: комментарий от Breton

Может попробовать enca?

Даже она не справится.

GotF ★★★★★
() автор топика
Ответ на: комментарий от d_a

>>Или ты хочешь обсудить этические аспекты твоего проступка?

Нет, но я хочу передать сердечный привет ICQ Inc. (или как их там) и пожелания осилить уже правильную кодировку.

GotF ★★★★★
() автор топика
Ответ на: комментарий от nu11

>>которую из трех, существующих в венде?

O_o UTF-8? А какие там ещё правильные? Слышал про UTF-16, правда ещё.

GotF ★★★★★
() автор топика
Ответ на: комментарий от GotF

Расово верной кодировкой в Wintel является непереносимый UTF-16/Little Endian, который можно скармливать напрямую в API интерфейсы ядра NT без дополнительных перекодировок. Все остальное - компромисс :)

d_a ★★★★★
()
Ответ на: комментарий от GotF

сердечный привет ICQ Inc

я делаю так:

CMD_F='iconv -f utf-8 -t ISO-8859-1'
CMD_T='iconv -f cp1251 -t utf-8'

echo "$STRING" | $CMD_F | $CMD_T

ну, у меня там чуть длиннее скрипт, писал, когда пришлось с кем-то общаться дольше 10 строк )))))

name_no ★★
()
Ответ на: комментарий от GotF

>А какие там ещё правильные?

правильная на самом деле UTF-16 (или 32, не помню уже). Но на деле используется еще 2 набора однобайтовых кодировок со времен ДОС и вынь9х

nu11 ★★★★★
()
Ответ на: комментарий от nu11

>>Но на деле используется еще 2 набора однобайтовых кодировок со времен ДОС и вынь9х

Это-то я знаю и так. А вот про кодировку ядра впервые услышал именно здесь :)

GotF ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.