Заказать сайт недорого. Создание сайта на базе системы управления контентом. Индивидуальный подход при создании сайта. Современный и красивый дизайн сайта. Удобная навигация на сайте.

palexa.pp.ua@gmail.com

(+380) 66 531 77 01 ; 67 301 39 26

Перекодировка файлов в Linux. Перекодировать CP1251 в UTF-8

Браузер чаще всего сам определяет кодировку страницы html. Но бывают случаи когда это не удаётся. В данном случае мне необходимо было перекодировать всю документацию написанную на html. Перекодировка файлов в Linux делается несколькими способами.

Проблема заключалась в том, что веб-приложение SAMS отрывалось в кодировке utf8,  а справка по SAMS была написана в кодировке koi8 и открывалась во фрейме. В результате я видел абру-кадабру, вместо кириллицы.

Сначала я немного помучился, а потом нашёл решение, как перекодировать все файлы html из koi8-r в utf8.

Назовём это пакетная перекодировка файлов в utf 8

Открываю консоль и перехожу в директорию, где находятся наши файлы и пишу вот такую несложную команду

cd /usr/share/sams/doc/RU
for file in *; do cat $file | iconv -cs -f koi8-r -t utf8 > $file.tmp; mv -f $file.tmp $file; done

Теперь проблема решена, все мои файлы были перекодированы из koi8-r в utf8 и документация SAMS во фрейме нормально читается.

Если надо перекодировать только один файл,  из кодировки cp1251 в utf-8 достаточно написать команду:

iconv -f cp1251 -t utf8 /user/titles.txt -o /user/titles.txt

Второй вариант, использовать enconv. Можно перекодировать файл, не указывая исходную кодировку. Для этого необходим пакет enca. Установите его.

yum install enca

Теперь что бы перекодировать файл в utf8 выполнить команду

enconv -x UTF-8 -L ru /user/titles.txt

или

enconv -x CP1251 /user/titles.txt

Если не указывать в какую кодировку перекодировать, то файл перекодируется в текущую локаль

enconv /user/titles.txt

А что делать, если у вас много файлов в различных кодировках? В этом случае нам пригодится этот пакет. Перекодировка текстовых файлов из текущей директории в кодировку принятой в системе:

$ find ./ -iname \*.txt -print0 | xargs -0 -n 1 enconv

В состав пакета входит утилита enca, которая позволяет определить текущую кодировку файла:

enca /user/titles.txt
Universal transformation format 8 bits; UTF-8

Информация на сайте оказалась Вам полезной? Вы нашли ответ на вопрос?

Узнайте как поблагодарить меня

Комментарии   

0 #1 Shkur 28.12.2015 14:13
зачем писать скрипты?
можно же сделать так
enca -L ru -x utf-8 *[!{.jpg},{.ico}]
[http://mrshkur.blogspot.ru/2015/12/linux-ubuntu-windows1251-utf-8.html]
Цитировать

Добавить комментарий


Защитный код
Обновить