Коротенькая заметка по конвертированию текстовых файлов в utf8 в качестве памятки.
Доставшееся виндовое наследие в виде каких-то заметок, записок, рецептов, стихов и прочих текстовых документиков долго не давало мне покоя, из-за того, что хранилось оно в кодировке CP1251.
Чтобы спать спокойно, нужно все это перевести в utf8. Желательно легко, быстро и все сразу. Такой способ есть. Для этого нам понадобится программа enconv, входящая в пакет enca. Работать с ней до безобразия просто. Команда
enconv zametki.txt
автоматически определяет кодировку файла и конвертирует в родную кодировку локали с перезаписью файла.
Соответственно, чтобы сконвертировать все разом, нужно скомандовать примерно следующее:
find /home/user/ -name "*.txt" |enconv
и все станет великолепно. Файлы которые уже в utf8, enconv не трогает, они остаются без изменений.
Но все равно остается шанс столкнуться с файлом в ненавистной cp1251. С этим можно бороться двумя способами.
1. Поставить leafpad. Никаких особых достоинств типа подсветки синтаксиса или автодополнения кода у него нет, но зато он замечательно автоматически определяет кодировку файла и отображает его в читаемом виде. К тому же он достаточно легкий и быстрый.
2. Можно допилить стандартный гномовский gedit по инструкции, посоветованной мне товарищем Cucumber. Я попробовал, у меня все заработало.
Огромное спасибо коментаторам, с их подачи пост был практически полностью переписан.
среда, 12 ноября 2008 г.
Кодировки в текстовых файлах.
Подписаться на:
Комментарии к сообщению (Atom)
12 комментариев:
спасибо за leafpad
Хотите вы этого или нет, но документы с win1251 все равно будут встречаться. Я подправил gedit и теперь он корректно открывает такие документы. Как это сделать написано http://www.openkazan.info/gedit_windows-1251_utf8
А почему recode, а не iconv?
2Cucumber. не способ. тогда все файлы в utf кодировке с русскими символами отображаются кракозябрами. вот если бы гедит налету распознавал кодировку как leafpad ...
Зачем нужен recode, когда есть iconv?
2cucumber: полезная ссылка, спасибо!
2triklozoid: а я обычно konwert ставлю, у него командная строка самая короткая получается и он умеет делать автоопределение (any/ru):
$ echo молоко | iconv -f UTF-8 -t KOI8-R | konwert any/ru-utf8
Неплохой вариант с автоопределением кодировки - http://dstrsblog.blogspot.com/2008/03/kate.html
А почему не поставить пакет enca и затем попробовать просто enconv file? Если не ковертирует автоматом, тогда уже использовать ключи... Проще по любому...
Даже не ожидал, что будет столько отзывов. Приятно удивлён.
2 vanoc
спасибо за leafpad
Пожалуйста. Я в свою очередь могу сказать спасибо дистрибутиву ALTLinux Compact, там он стоял редактором по умолчанию..
2 cucumber
Хотите вы этого или нет, но документы с win1251 все равно будут встречаться.
Я не сомневаюсь, поэтому поставил leafpad.
Я подправил gedit ...
Сходил по ссылке, попробовал, все работает. Спасибо, дополню пост.
2 savagex & skarrok &
recode сразу перезаписывает файл, а iconv как и konwert направляет результат в стандартный вывод.
2 stanislav
Неплохой вариант с автоопределением кодировки - http://dstrsblog.blogspot.com/2008/03/kate.html
Спасибо за комментарий, просто я kate не использую, поэтому вряд ли пригодится.
2 Juev
А почему не поставить пакет enca..
Спасибо, попробовал, действительно работает, классная вещь.
> я kate не использую, поэтому вряд ли пригодится
по идее можно к любому другому редактору прицепить, который принимает параметр с кодировкой
Кстати, в KDE4 kwrite умеет определять кодировку при открытии, выставляется в опциях. Очень приятный плюс.
ОПХБЕР!
Отправить комментарий