среда, 12 ноября 2008 г.

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

Дневник triklozoid'a.: Кодировки в текстовых файлах.

Коротенькая заметка по конвертированию текстовых файлов в utf8 в качестве памятки.

Доставшееся виндовое наследие в виде каких-то заметок, записок, репептов, стихов и прочих текстовых документиков долго не давало мне покоя, из-за того, что хранилось оно в кодировке CP1251. Стандартные текстовые редакторы(к ним я отношу gedit и kwrite) открывают подобное извращение в виде замечательных кракозябр, поэтому приходится ручками переоткрывать файл с выбором кодировки. Конечно это сильно раздражает и не дает жить спокойно. Потом я открыл для себя текстовый редактор leafpad. Никаких выдающихся особенностей типа возможности использования в качестве IDE(привет emacs'у) у него нет, зато у него есть замечательное свойство автоопределения кодировки открываемого файла. К тому он достаточно легок, чтобы не ждать лишние секунды. Такое выход меня устраивал, но все же хотелось решить проблему более глобально. Немного погуглив, я нашел несколько подходящих программ и воспользовался первой попавшейся.
Называется она recode. Действует примерно таким образом:

recode #ОТКУДА..#КУДА #ЧТО


В моем случае:

recode CP1251..UTF8 zametki.txt

Конечно у нее есть куча разных параметров о которых можно почитать в man странице, но мне больше ничего не нужно было.
И теперь как же решить все проблемы одним махом.

find /home/user/ -name "*.txt" |recode CP1251..UTF8


Я боялся, что наткнувшись на файлы, которые уже в utf8, recode может сделать с ними что-то страшное но мои опасения не оправдались. В этом случае выводится сообщение:
"recode: zametki.txt failed: Ambiguous output in step `CR-LF..data'"
и файл пропускается.

Комментариев нет: