статьиGNU Free Documentation License материалы взяты из Википедии Статья была изменена. Оригинал статьи.

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

[править] См. также

[править] Ссылки

Источник в «/w/index.php?title=Iconv&oldid=43645168»
Пространства имён

Варианты
Просмотры
Действия