iconv(1) преобразует текст из одной кодировки в другую

ОБЗОР

iconv [параметры] [-f начальная_кодировка] [-t конечная_кодировка] [входной_файл]…

ОПИСАНИЕ

Программа iconv читает текст в одной кодировке и выдаёт его в другой кодировке. Если входной файл не указан, или если как имя указана черта (-), то iconv читает данные со стандартного ввода. Если выходной файл не указан, то iconv осуществляет запись в стандартный вывод.

Если начальная_кодировка не задана, то по умолчанию используются данные о кодировке текущей локали. Если конечная_кодировка не задана, то по умолчанию используются данные о кодировке текущей локали.

ПАРАМЕТРЫ

-f начальная_кодировка, --from-code=начальная_кодировка
Использовать начальную_кодировку для входных данных.
-t конечная_кодировка, --to-code=конечная_кодировка
Использовать конечную_кодировку для выходных данных.

Если в конечную_кодировку добавлена строка //IGNORE, то символы, которые невозможно преобразовать, отбрасываются и после преобразования выводится ошибка.

Если в конечную_кодировку добавлена строка //TRANSLIT, то при необходимости и возможности символы будут транслитерироваться. Это означает, что когда символ невозможно представить в конечной кодировке, он может быть приблизительно преобразован в один из похожих символов. Символы, которые отсутствуют в конечной кодировке и их невозможно транслитерировать, в выводе заменяются на знак вопроса (?).

-l, --list
Вывести все известные кодировки символов.
-c
Отбрасывать символы, которые невозможно преобразовать, а не прекращать работу при обнаружении такого символа.
-o файл_результата, --output=файл_результата
Использовать файл_результата для вывода.
-s, --silent
Параметр игнорируется, предоставляется только для совместимости.
--verbose
Выводить информацию о ходе работы в стандартный поток ошибок при обработке нескольких файлов.
-?, --help
Показать справку по использованию и завершить работу.
--usage
Показать краткую справку по использованию и завершить работу.
-V, --version
Показать номер версии, лицензию и уведомление о гарантиях для iconv.

КОД ВЫХОДА

При успешном выполнении возвращается 0. В случае ошибки возвращается ненулевое значение.

ОКРУЖЕНИЕ

Для преобразования между кодировками программа iconv использует функцию iconv(3), которая, в свою очередь, использует модули gconv (динамически загружаемые общие библиотеки). Перед вызовом iconv(3) программа iconv сначала должна разместить дескриптор преобразования с помощью iconv_open(3). На работу последней функции влияет настройка переменной окружения GCONV_PATH:
*
Если GCONV_PATH отсутствует, то iconv_open(3) загружает системный файл кэша настроек модуля gconv, созданного iconvconfig(8) и затем, на основе настройки, загружает модули gconv, необходимые для выполнения преобразования. Если системный файл кэша настроек модуля gconv недоступен, то используется системный файл настроек модуля gconv.
*
Если GCONV_PATH задана (список путей через двоеточие), то системный файл кэша настроек модуля gconv не используется. Вместо него iconv_open(3) пытается загрузить файлы настройки сначала из каталогов в GCONV_PATH в порядке, заданном в системном файле настроек по умолчанию модуля gconv. Если каталог не содержит файл настройки модуля gconv, все модули gconv, которые он может содержать, игнорируются. Если каталог содержит файл настройки модуля gconv и определённый им модуль, требуемый для этого преобразования, доступен в каталоге, то необходимый модуль загружается из этого каталога; используется первый подходящий модуль, найденный в GCONV_PATH. Это позволяет пользователям использовать свои модули и даже заменять системные модули, указывая такие модули в каталогах GCONV_PATH.

ФАЙЛЫ

/usr/lib/gconv
Обычный путь по умолчанию модуля gconv.
/usr/lib/gconv/gconv-modules
Обычный файл настройки по умолчанию модуля gconv.
/usr/lib/gconv/gconv-modules.cache
Обычный путь кэша настроек модуля gconv.

СООТВЕТСТВИЕ СТАНДАРТАМ

POSIX.1-2001.

ПРИМЕР

Преобразует текст из кодировки ISO 8859-15 в UTF-8:

$ iconv -f ISO-8859-15 -t UTF-8 < input.txt > output.txt

В следующем примере выполняется преобразование из UTF-8 в ASCII с транслитерацией где возможно:

$ echo abc ß α € àḃç | iconv -f UTF-8 -t ASCII//TRANSLIT
abc ss ? EUR abc