GrabDuck

Смена кодировки файла в Linux

:

Смена кодировки файла в LinuxОднажды банально возникла задача поменять кодировку файла с 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.