- iconv
-
iconv — утилита UNIX (и одноимённая библиотека) для преобразования текста из одной кодировки в другую. Также портирована под Windows.
Содержание
Синтаксис
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 find . -type f -name '*.htm' -o -name '*.html' | while read i do echo $i iconv -f WINDOWS-1251 -t UTF-8 "$i" > tmp mv -f tmp "$i" done
Массовое перекодирование windows
Следующий набор скриптов находит все файлы в текущей директории с расширением *.txt, перекодирует в CP1251 из KOI8-R:
all.cmd:
for /R %%i in (.) do call txt.cmd %%i
txt.cmd:
set cd2=%cd% cd %1 for %%j in (*.txt) do call %cd2%\iconv2.cmd %%j cd %cd2%
iconv2.cmd:
iconv -c -f KOI8-R -t CP1251 %1 > win.%1 del %1 rename win.%1 %1
Другой способ (через cmd):
Прежде чем выполнять эту команду, нужно добавить iconv в переменную окружения Path:
for %i in (*.txt) do iconv -f cp1251 -t utf-8 %i > utf8/%i
Команда перекодирует все файлы с расширением «txt» и положит перекодированные файлы в заранее созданную папку utf8.
См. также
- recode
- enconv
Ссылки
- Проект OpenNet: man iconv(1) с массой дополнительных ссылок
- Реализация в рамках проекта GNU (англ.)
- Версия для MS Windows (англ.) в рамках проекта GnuWin32
- Порт FreeBSD (англ.)
Команды Unix POSIX.1-2008 Утилиты POSIX.1-2008 admin • alias • ar • asa • at • awk • basename • batch • bc • bg • c99 • cal • cat • cd • cflow • chgrp • chmod • chown • cksum • cmp • comm • command • compress • cp • crontab • csplit • ctags • cut • cxref • date • dd • delta • df • diff • dirname • du • echo • ed • env • ex • expand • expr • false • fc • fg • file • find • fold • fort77 • fuser • gencat • get • getconf • getopts • grep • hash • head • iconv • id • ipcrm • ipcs • jobs • join • kill • lex • link • ln • locale • localedef • logger • logname • lp • ls • m4 • mailx • make • man • mesg • mkdir • mkfifo • more • mv • newgrp • nice • nl • nm • nohup • od • paste • patch • pathchk • pax • pr • printf • prs • ps • pwd • qalter • qdel • qhold • qmove • qmsg • qrerun • qrls • qselect • qsig • qstat • qsub • read • renice • rm • rmdel • rmdir • sact • sccs • sed • sh • sleep • sort • split • strings • strip • stty • tabs • tail • talk • tee • test • time • touch • tput • tr • true • tsort • tty • type • ulimit • umask • unalias • uname • uncompress • unexpand • unget • uniq • unlink • uucp • uudecode • uuencode • uustat • uux • val • vi • wait • wc • what • who • write • xargs • yacc • zcat GNU Coreutils Файловые утилиты chgrp • chown • chmod • cp • dd • df • dir • dircolors • install • ln • ls • mkdir • mkfifo • mknod • mv • rm • rmdir • shred • sync • touch • vdir Текстовые утилиты cat • cksum • comm • csplit • cut • expand • fmt • fold • head • join • md5sum • nl • od • paste • ptx • pr • sha1sum • sort • split • sum • tac • tail • tr • tsort • unexpand • uniq • wc Shell-утилиты basename • chroot • date • dirname • du • echo • env • expr • factor • false • groups • hostid • id • link • logname • nice • nohup • pathchk • pinky • printenv • printf • pwd • readlink • seq • sleep • stat • stty • tee • test • true • tty • uname • unlink • users • who • whoami • yes Кодировки символов Основы → алфавит • текст ( файл • данные ) • набор символов • конверсия Исторические кодировки → Докомп.: семафорная (Макарова) • Морзе • Бодо • МТК-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 Категории:- Преобразователи текста
- Инструменты Unix для обработки текста
Wikimedia Foundation. 2010.