Столкнулся с проблемой... есть набор текстовых файлов причём этот набор структурирован и распределён по директориям...
Задача в том как без особых затрат времени перекодировать всё это добро из cp1251 в UTF-8?
Хм... немного покопавшись в консольных утилитах вот что у меня получилось:
И не нужны никакие он-лайн сервисы :) find . -name "*.txt" -exec recode CP1251/..UTF-8 {} \;
мало того... немного покопавшись нашёл как и имена перекодировать: find . -exec sh -c ‘mv $0 `echo $0 | iconv -f CP1251 -t UTF-8`’ {} \;
Это на случай если кто-то тоже решит что cp1251 для линукса - как мыло в глотку :)
Кто напишет set enc=cp1251, натравлю домашне-бойцового пингвина, ибо эта команда не конвертирует, а отображает и пишет в этой кодировке, насколько я понимаю.
Вот еще один способ нашел на просторах инета... =)
Смена кодировки текстового файла с CP1251 на UTF8:
1. Устанавливаем необходимый пакет: sudo apt-get install enca
2. Конвертируем один файл в кодировку локали дистрибутива, которая определяется автоматически: enconv имя_файла
Вместо имя_файла должен находится полный путь до файла в кодировке CP1251, к примеру: enconv /home/koder/1.txt
Если этих файлов окажется несколько, то команда выглядит несколько иначе: find путь_к_директории -name "*.txt" -exec enconv {} \;
Для нашего примера должно быть так: find /home/koder/ -name "*.txt" |enconv
Есть он-лайн сервисы, которые это делают
Хм... немного покопавшись в консольных утилитах вот что у меня получилось:
И не нужны никакие он-лайн сервисы :)
find . -name "*.txt" -exec recode CP1251/..UTF-8 {} \;
мало того... немного покопавшись нашёл как и имена перекодировать:
find . -exec sh -c ‘mv $0 `echo $0 | iconv -f CP1251 -t UTF-8`’ {} \;
Это на случай если кто-то тоже решит что cp1251 для линукса - как мыло в глотку :)
http://kubuntu.ru/amarok.html А вот так конвертируем теги :)
А можно ли как-либо из под vi ?
Кто напишет
set enc=cp1251
, натравлю домашне-бойцового пингвина, ибо эта команда не конвертирует, а отображает и пишет в этой кодировке, насколько я понимаю.Помогло:
:e ++enc=cp1251
Спасибо Ockanal -у.
Варианты:
:write ++enc=cp-1251
или
set fileencoding=cp-1251
Не пашет это. Проверь у себя на всяк пожарный.
Ну не могу, руки жесть кривые, ну НИКАК не могу перекодировать один файл ну *****.
:e ++enc=cp1251
В режиме редактора поменяет кодировку файла. Постоянно пользуюсь этой командой.
:e ++enc=cp1251
Вот еще один способ нашел на просторах инета... =)
Смена кодировки текстового файла с CP1251 на UTF8:
1. Устанавливаем необходимый пакет:
sudo apt-get install enca
2. Конвертируем один файл в кодировку локали дистрибутива, которая определяется автоматически:
enconv имя_файла
Вместо имя_файла должен находится полный путь до файла в кодировке CP1251, к примеру: enconv /home/koder/1.txt
Если этих файлов окажется несколько, то команда выглядит несколько иначе:
find путь_к_директории -name "*.txt" -exec enconv {} \;
Для нашего примера должно быть так: find /home/koder/ -name "*.txt" |enconv
Отправить комментарий