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
[править] См. также
[править] Ссылки
- Проект OpenNet: man iconv(1) с массой дополнительных ссылок
- Реализация в рамках проекта GNU (англ.)
- Версия для MS Windows (англ.) в рамках проекта GnuWin32
- Порт FreeBSD (англ.)
| Стандартные программы UNIX (все программы) | |
|---|---|
| Файловые системы | chroot dd df fdisk fsck mkisofs mkswap mount umount rehash |
| Файлы и каталоги | cat chattr cd chmod chown chgrp cksum cmp cp diff du file fuser ln ls lsof mkdir mv od pwd rm rmdir split touch |
| Процессы | at cron exit kill killall nice nohup pgrep pidof pkill ps renice sleep time top wait watch |
| Пользователи | env finger id last logname mesg passwd su sudo uptime w wall who whoami write |
| Сеть | ftp host ifconfig netcat netstat nmap nslookup ping rlogin SSH traceroute wget |
| Тексты | AWK comm cut ed ex expand unexpand fmt head iconv join less more paste pr sed sort tac tail tr uniq wc xargs |
| Командная строка | alias basename bash bind dirname echo expr false printf test true unset |
| Поиск | find grep strings whereis which |
| Разное | banner bc cal date help lp man history size tee uname yes reboot |
| Кодировки символов | |||
|---|---|---|---|
| Основы | алфавит текст ( файл данные ) набор символов конверсия | ||
| Исторические кодировки | Докомп.: семафорная (Макарова) Морзе Бодо МТК-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 | |