Однажды банально возникла задача поменять кодировку файла с Windows CP-1251 на UTF-8 посредством консоли. Как правило, задача возникает при работе с двумя системами windows и linux. Объяснение этому простое, windows предпочитает работать с текстовыми файлами в кодировке CP-1251, а linux в свою очередь использует кодировку UTF-8. Способов смены кодировки файла оказалось множество, опишу тот, который приглянулся мне.
Существует такая утилита как enconv, она входит в состав пакета enca, который в свою очередь упрощает работу с кодировками файлов.
Итак, для начала неплохо бы узнать, в какой кодировке файл:
# file -i file.txt
Или так
# enca file.txt
Узнав исходную кодировку файла, меняем её с помощью команды:
# iconv -f cp1251 -t utf8 исходный.txt -o конечный.txt
Есть способ, при котором программа сама определит кодировку файла, и преобразует её к кодировке текущей локали:
# enconv file.txt
Преобразовать файл, в кодировку отличную от текущей локали, можно добавив параметр -x:
# enconv -x CP1251 file.txt
Итак, полагаю эта заметка пригодиться в работе, в частности лицам, которым приходиться работать с консолью linux.
Лойс
как перекодировать все файлы в каталоге?