Преобразование Charset из XXX в UTF-8, командная строка - PullRequest
13 голосов
/ 27 апреля 2010

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

Ответы [ 3 ]

27 голосов
/ 27 апреля 2010

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

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

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

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

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

  • Для получения полного списка кодировок, принятых iconv, выполните iconv -l.

  • В приведенном выше примере используется перенаправление оболочки. Убедитесь, что вы не используете оболочку, которая исправляет кодировки при перенаправлении - то есть, не используйте PowerShell для этого.
9 голосов
/ 27 апреля 2010
recode latin2..utf8 myfile.txt

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

3 голосов
/ 27 апреля 2010

GNU 'libiconv' должна быть в состоянии выполнить работу.

...