- Iconv
-
Iconv
iconv — утилита UNIX (и одноимённая библиотека) для преобразования текста из одной кодировки в другую. Также портирована под Windows (http://gnuwin32.sourceforge.net/packages/libiconv.htm)
Содержание
Синтаксис
iconv [-c] [-s] [-f encoding] [-t encoding] [inputfile ...] iconv -l
Описание
Утилита iconv конвертирует текст из одной кодировки в другую. Входная кодировка задаётся ключом -f, а выходная — ключом -t. Любая из этих кодировок по умолчанию равна локали системы. Все входные файлы читаются по очереди, если не задан параметр входного файла, то используется стандартный ввод, а конвертируемый текст выводится на стандартный вывод.
Когда задана опция -c, символы, которые не могут быть преобразованы просто выбрасываются. В противном случае при появлении подобной ошибки программа аварийно завершается.
Когда задана опция -s, сообщения об ошибках не выводятся.
Ключ -l выводит список доступных кодировок.
Примеры
Массовое перекодирование
Следующий скрипт находит все файлы в текущей директории с расширением *.java, перекодирует их в UTF-8 и результат копирует в папку res
mkdir res find -maxdepth 1 -iname "*.java" -type f -exec bash -c "cat {} | iconv -c -f WINDOWS-1251 -t UTF-8> ./res/{}" \;
перекодирование всех файлов в директории с их заменой
for i in *; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done
или файлы необходимого типа и рекурсивно (в примере txt файлы):
find . -name '*.txt' | while read i; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done
или так (рекурсивное перекодирование всех файлов html):
#!/bin/sh for i in `find . -name '*.html' -type f` do echo $i iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp mv -f tmp "$i" done
См. также
- recode
- enconv
Ссылки
- Проект OpenNet: man iconv(1) с массой дополнительных ссылок
- Реализация в рамках проекта GNU (англ.)
- версия для MS Windows (англ.) в рамках проекта GnuWin32
- Порт FreeBSD (англ.)
Кодировки символов Основы → алфавит • текст ( файл • данные ) • набор символов • конверсия Исторические кодировки → Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-2 Комп.: 6 бит • УПП • RADIX-50 • EBCDIC ( ДКОИ-8 ) • КОИ-7 • ISO 646 совре-
менное
8-битное
представ-
лениесимволы → ASCII ( управляющие • печатные ) не-ASCII ( псевдографика ) 8бит. код.стр. Разные → Кириллица: КОИ-8 • ГОСТ 19768-87 • MacCyrillic ISO 8859 → 1(лат.) 2 3 4 5(кир.) 6 7 8 9 10 11 12 13 14 15(€) 16 Windows → 1250 1251(кир.) 1252 1253 1254 1255 1256 1257 1258 | WGL4 IBM&DOS → 437 • 850 • 852 • 855 • 866 «альт.» ( МИК ) Много-
байтныеТрадиционные → DBCS ( GB2312 ) • HTML Unicode → UTF-16 • UTF-8 • список символов ( кириллица ) Связанные
темы →интерфейс пользователя • раскладки клавиатур • локаль • перевод строки • шрифт • крокозябры • транслит • нестандартные шрифты • текст как изображение Утилиты: iconv • recode
Wikimedia Foundation. 2010.