Преобразование набора символов от XXX до utf-8, командной строки

У меня есть набор текстовых файлов, которые кодируются в ISO-8851-2 (имейте некоторые символы полировки). Существует ли инструмент командной строки для linux/mac, который я мог запустить из сценария оболочки для преобразования этого в более нормальный utf-8?

14
задан Jon Seigel 9 May 2010 в 22:20
поделиться

3 ответа

Используйте iconv , например так:

iconv -f LATIN1 -t UTF-8 input.txt > output.txt

Дополнительная информация:

  • Вы можете указать UTF-8 // TRANSLIT вместо обычного UTF-8 . Процитируем страницу руководства:

    Если строка // TRANSLIT добавляется к to-encoding , преобразовываемые символы транслитерируются, когда это необходимо и возможно. Это означает, что когда символ не может быть представлен в целевом наборе символов, он может быть аппроксимирован одним или несколькими похожими символами. Символы, которые не входят в целевой набор символов и не могут быть транслитерированы, заменяются вопросительным знаком (?) В выводе.

  • Чтобы получить полный список кодов, принимаемых iconv , выполните iconv -l .

  • В приведенном выше примере используется перенаправление оболочки. Убедитесь, что вы не используете оболочку, которая искажает кодировки при перенаправлении, то есть не используйте для этого PowerShell.
27
ответ дан 1 December 2019 в 06:59
поделиться

GNU 'libiconv' должен уметь выполнять эту работу.

3
ответ дан 1 December 2019 в 06:59
поделиться
recode latin2..utf8 myfile.txt

Это заменит myfile.txt новой версией. Вы также можете использовать перекодирование без имени файла в качестве канала.

10
ответ дан 1 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: