+7 727 2 700 900
+7 727 2 999 666
+7 707 240 62 00
+7 707 270 99 99
поиск RDP win sed Ubuntu |
rename-files кодировки виртуалки полезности |
Как: Определить и Изменить Кодировку Файла
Posted on Вторник Декабрь 27th, 2016
Linux администраторы, работающие с веб-хостингом, знают насколько важно хранить html документы в правильной кодировке.
Из этой статьи вы узнаете, как определить кодировку файла из командной строки в Linux.
А также, вы познакомитесь с лучшим решением для конвертации текста между различными кодировками.
Дополнительно я приведу примеры конвертации текста между такими наиболее распространенными кодировками, как CP1251 (Windows-1251, Кириллица), UTF-8, ISO-8859-1 и ASCII.
Дельный Совет: Хотите видеть родной язык в Linux терминале? Просто поменяйте локаль! Читать далее →
Определить Кодировку Файла
Используйте следующую команду, чтобы узнать какая кодировка используется в файле:
$ file -bi [filename]
Опция Описание
-b, --brief Не печатать имя файла (краткий режим)
-i, --mime Определить тип файла и кодировку
Определить кодировку файлы in.txt:
$ file -bi in.txt
text/plain; charset=utf-8
Изменить Кодировку Файла
Используйте следующую команду для изменения кодировки файла:
$ iconv -f [encoding] -t [encoding] -o [newfilename] [filename]
Опция Описание
-f, --from-code Изменить с кодировки
-t, --to-code Изменить на кодировку
-o, --output Сохранить результат в файл
Изменить кодировку файла с CP1251 (Windows-1251, Кириллица) на UTF-8:
$ iconv -f cp1251 -t utf-8 in.txt
Изменить кодировку файла с ISO-8859-1 на UTF-8 и сохранить результат в out.txt:
$ iconv -f iso-8859-1 -t utf-8 -o out.txt in.txt
Изменить кодировку файла с ASCII на UTF-8:
$ iconv -f utf-8 -t ascii -o out.txt in.txt
Изменить кодировку файла с UTF-8 на ASCII:
Illegal input sequence at position: Поскольку UTF-8 может содержать символы которые не конвертируются в ASCII, iconv будет генерировать сообщение об ошибке «Illegal input sequence at position«, пока вы не скажете пропускать все неконвертируемые в ASCII символы, с помощью опции -c.
$ iconv -c -f utf-8 -t ascii -o out.txt in.txt
Опция Описание
-c Исключить из вывода недопустимые символы
Вы можете потерять символы: Обратите внимание, что используя iconv с опцией -c некоторые символы могут быть потеряны.
Довольно распространенная ситуация для тех, кто работает одновременно с Windows и Linux.
В частности, это касается Windows машин с Кириллицей.
Вы скопировали какой-то файл с Windows в Linux, но при его открытии в Linux, вы видите “Êàêèå-òî êðàêîçÿáðû” – Что за … !?
Без паники — подобные строки могут быть быть легко преобразованы из кодировки CP1251 (Windows-1251, Кириллица) в UTF-8 с помощью:
$ echo "Êàêèå-òî êðàêîçÿáðû" | iconv -t latin1 | iconv -f cp1251 -t utf-8
Какие-то кракозябры
Список Всех Кодировок
Перечислить все известные кодировки:
$ iconv -l
Опция Описание
-l, --list Список всех известных кодировок