Initially appearing on the HP-UX operating system,[6]iconv() as well as the utility was standardized within XPG4 and is part of the Single UNIX Specification (SUS).
Implementations
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[7] 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.[8]
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.
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.[5]
Ports
Under Microsoft Windows, the iconv library and the utility is provided by GNU's libiconv found in Cygwin[9] and GnuWin32[10] environments; there is also a "purely Win32" implementation called "win-iconv" that uses Windows' built-in routines for conversion.[11] The iconv function is also available for many programming languages.
The iconv command has also been ported to the IBM i operating system.[12]