ryg

Утилита iconv -перекодировать символы

Синтаксис:

       iconv [OPTION...] [-f encoding] [-t encoding] [inputfile ...]
       iconv -l

Описание:

Утилита iconv преобразует текст из одной кодировки в другую. Точнее она перекодирует заданный текст из кодировки указанной в ключе -f, в кодировку заданную в ключе -t. Если входной файл (inputfile) не задан, то для ввода данных используется стандартный ввод, вывод сконвертированных данных производится по умолчанию в стандартный вывод.
 
Возможные форматы кодировок зависят от типа кодировок поддерживаемых операционной системой. Mac OS X поддерживает:
Европейские языки
ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh
 
Арабские ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
Японский EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
Китайские кодировки EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT
Корейский EUC-KR, CP949, ISO-2022-KR, JOHAB
Армянский ARMSCII-8
Грузинский Georgian-Academy, Georgian-PS
Таджикский KOI8-T
Казахский PT154
Тайский TIS-620, CP874, MacThai
Лаоский MuleLao-1, CP1133
Вьетнамский VISCII, TCVN, CP1258
Привязанные к компьютерной платформе HP-ROMAN8, NEXTSTEP
Полный Unicode UTF-8, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7,C99, JAVA
   
Возможно подключение дополнительных кодировок
Европейские языки
CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}
 
Арабский  P864
Японский EUC-JISX0213, Shift_JISX0213, ISO-2022-JP-3
Китайская кодировка BIG5-2003 (experimental)
Туркменская
 
TDS565
Для специальных платформ ATARIST, RISCOS-LATIN1
Доступные параметры
 
-f  encoding   задает исходную кодировку
-t  encoding   задает кодировку на выходе
 
Параметры для контроля проблем с конвертацией.
 
 Если указан данный параметр, то символы которые не могут быть сконвертированы в новую кодировку пропускаются и ошибка перекодировки не возникает.
--unicode-subst=formatstring  Если использован данный параметр то, символы, которые невозможно перекодировать из unicode будут заменены на символы из formatstring. formatstring имеет формат аналогичный как для команды или функции printf
--byte-subst=formatstring  Если использован данный параметр то, байты, которые не могут быть использованы в исходной кодировке,  будут заменены на байты из formatstring. fomatstring имеет формат аналогичный как для команды или функции printf
--widechar-subst=formatstring  Если использован данный параметр то, расширенные символы , которые не могут быть использованы в исходной кодировке,  будут заменены на байты из formatstring. fomatstring имеет формат аналогичный как для команды или функции printf
Параметры контроля за выводом ошибок
 
-s
--silent                 Если использован данный параметр то, все сообщения о невозможности перекодировки символов не будут выводиться.
 
iconv -l
iconv --list            выводит в стандарный вывод список всех поддерживаемых кодировок 

Примеры 

Перекодировать данные из стандартного ввыда и русской кодировки Windows в уникод

iconv -f WINDOWS-1251  -t UTF-8
 Перекодировать все файлы с расширением txt в папке ~/mydisk/myfolder/
for files in ~/mydisk/myfolder/*.txt
do
  iconv -f WINDOWS-1251 -t UTF-8 "$files" >"$files-utf8.txt"
done

Перекодировать и KOI8-R в стандартную кодировку системы заменяя неконвертируемые символы.

iconv -f KOI8-R --byte-subst="<0x%x>"  --unicode-subst="<U+%04X>" 

Вывести список доступных кодировок

iconv --list

Связанные команды:

tr - заменить символы по заданному шаблону
printf - отформатировать и напечатать значения
Весь список команд терминала OS X