Iconv
Standard UNIX utility
In Unix and Unix-like operating systems, iconv (an abbreviation of internationalization conversion) is a command-line program and a standardized application programming interface (API) used to convert between different character encodings. "It can convert from any of these encodings to any other, through Unicode conversion."
01History
Initially appearing on the HP-UX operating system, iconv() as well as the utility was standardized within XPG4 and is part of the Single UNIX Specification (SUS).
02Implementations
Most Linux distributions provide an implementation, either from the GNU Standard C Library (included since version 2.1, February 1999), or the more traditional GNU libiconv, for systems based on other Standard C Libraries.
The iconv function on both is licensed as LGPL, so it is linkable with closed source applications.
Unlike the libraries, the iconv utility is licensed under GPL in both implementations. The GNU libiconv implementation is portable, and can be used on various UNIX-like and non-UNIX systems. Version 0.3 dates from December 1999.
The uconv utility from International Components for Unicode provides an iconv-compatible command-line syntax for transcoding.
Most BSD systems use NetBSD's implementation, which first appeared in December 2004.
The musl C library implements the iconv function with support for all encodings specified by the WHATWG Encoding Standard.
Support
Currently, over a hundred different character encodings are supported in the GNU variant.
Ports
Under Microsoft Windows, the iconv library and the utility is provided by GNU's libiconv found in Cygwin and GnuWin32 environments; there is also a "purely Win32" implementation called "win-iconv" that uses Windows' built-in routines for conversion. The iconv function is also available for many programming languages.
The iconv command has also been ported to the IBM i operating system.
03Usage
stdin can be converted from ISO-8859-1 to current locale and output to stdout using:
iconv -f iso-8859-1An input file infile can be converted from ISO-8859-1 to UTF-8 and output to output file outfile using:
iconv -f iso-8859-1 -t utf-8 <infile> -o <outfile>Sources and credits
This article is adapted from the Wikipedia article “Iconv”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.