У меня есть набор текстовых файлов, которые кодируются в ISO-8851-2 (имейте некоторые символы полировки). Существует ли инструмент командной строки для linux/mac, который я мог запустить из сценария оболочки для преобразования этого в более нормальный utf-8?
Используйте iconv
, например так:
iconv -f LATIN1 -t UTF-8 input.txt > output.txt
Дополнительная информация:
Вы можете указать UTF-8 // TRANSLIT
вместо обычного UTF-8
. Процитируем страницу руководства:
Если строка
// TRANSLIT
добавляется к to-encoding , преобразовываемые символы транслитерируются, когда это необходимо и возможно. Это означает, что когда символ не может быть представлен в целевом наборе символов, он может быть аппроксимирован одним или несколькими похожими символами. Символы, которые не входят в целевой набор символов и не могут быть транслитерированы, заменяются вопросительным знаком (?) В выводе.
Чтобы получить полный список кодов, принимаемых iconv
, выполните iconv -l
.
recode latin2..utf8 myfile.txt
Это заменит myfile.txt
новой версией. Вы также можете использовать перекодирование без имени файла в качестве канала.