В Unix и Unix-подобных операционных системах iconv (аббревиатура от интернационализации преобразования) [2] представляет собой программу командной строки [3] и стандартизированный интерфейс прикладного программирования (API) [4] , используемый для преобразования между различными кодировками символов . «Он может конвертировать любую из этих кодировок в любую другую посредством преобразования Unicode». [5]
Первоначально появившаяся в операционной системе HP-UX [6]iconv()
, эта утилита была стандартизирована в рамках XPG4 и является частью единой спецификации UNIX (SUS).
Большинство дистрибутивов Linux предоставляют реализацию либо из стандартной библиотеки C GNU (включенной с версии 2.1, февраль 1999 г.), либо из более традиционной GNU libiconv
для систем, основанных на других библиотеках стандарта C.
Функция iconv
[ 7] в обоих случаях лицензирована как LGPL , поэтому ее можно связывать с приложениями с закрытым исходным кодом.
В отличие от библиотек, утилита в обеих реализациях iconv
лицензируется по лицензии GPL . [8]
Реализация GNU libiconv является переносимой и может использоваться в различных UNIX-подобных и не-UNIX-системах. Версия 0.3 датируется декабрем 1999 года.
Утилита uconv из International Components for Unicode предоставляет совместимый с iconv синтаксис командной строки для перекодирования.
Большинство систем BSD используют реализацию NetBSD, впервые появившуюся в декабре 2004 года.
В настоящее время поддерживается более ста различных кодировок символов. [5]
В Microsoft Windows библиотека iconv и утилита предоставляются libiconv GNU, найденной в средах Cygwin [9] и GnuWin32 [10] ; существует также «чисто Win32» реализация под названием «win-iconv», которая использует для преобразования встроенные процедуры Windows. [11] Функция iconv также доступна для многих языков программирования.
Команда iconv также была перенесена в операционную систему IBM i . [12]
stdin
можно преобразовать из ISO-8859-1 в текущую локаль и вывести с stdout
помощью: [13]
iconv -f iso-8859-1
Входной файл infile
можно преобразовать из ISO-8859-1 в UTF-8 и вывести в выходной файл, outfile
используя:
iconv -f iso-8859-1 -t utf-8 <входной файл> -o <выходной файл>