Конвертирование кодировок текстовых файлов

28 сентября 2009
Рубрика: Заметки
Теги: , , , ,

Zeboton

Есть ещё люди использующие Windows! И иногда они могут прислать вам текстовые файлы с расширением txt (они же не знают что текстовые файлы и без расширения бывают 🙂 ) или что-то типа такого. Если попытаться открыть эти файлы в gedit, без применения специального волшебства, то вместо русских букв будут каракули.

А что делать, если нужно не просто прочитать эти файлы, а работать с ними? Правильно, их нужно перекодировать в нормальную кодировку. Есть несколько рецептов этой магии:
1. Использовать встроенную утилиту iconv — это путь настоящего линуксойда, посему man iconv

2. Использовать другую утилиту: recode. Это путь тех, кто любит немного попроще. Но её сначала нужно установить:

sudo apt-get install recode

Использование этой утилиты немногим сложнее её установки:

recode CP1251..UTF8 file.txt

где:
CP1251 — кодировка в которой сейчас находится файл;
UTF8 — в какой кодировке файл должен быть;
file.txt — файл, который нужно перекодировать.

3. Использовать gedit. Этот способ я бы порекомендовал в случае если нужно перекодировать всего несколько файлов, причём внося в них изменения.
Открываем файл в «родной» кодировке:

gedit --encoding windows-1251 file.txt

Вносим все необходимые изменения, и в меню gedit выбираем Файл — Сохранить как…. В открывшемся окне указываем нужное имя файла и нормальную кодировку.
Замечание: С кодировкой CP1251 gedit не захотел открывать файл находящийся в кодировке windows-1251!

Если кто ещё знает способы — делитесь! Так как плюрализм способов решения задачи — это то что отличает Linux от других ОС.

Похожие записи: