Iconv

Last updated

iconv
Original author(s) Hewlett-Packard
Developer(s) Various open-source and commercial developers
Repository https://git.savannah.gnu.org/git/libiconv.git
Operating system Unix, Unix-like, Microsoft Windows, IBM i
Platform Cross-platform
Type Command
License libiconv: LGPL
iconv: GPL
win-iconv: Public domain [1]

In Unix and Unix-like operating systems, iconv (an abbreviation of internationalization conversion) [2] is a command-line program [3] and a standardized application programming interface (API) [4] used to convert between different character encodings. "It can convert from any of these encodings to any other, through Unicode conversion." [5]

Contents

History

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.

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. [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]

Usage

stdin can be converted from ISO-8859-1 to current locale and output to stdout using: [13]

iconv-fiso-8859-1 

An input file infile can be converted from ISO-8859-1 to UTF-8 and output to output file outfile using:

iconv-fiso-8859-1-tutf-8<infile>-o<outfile> 

See also

References

  1. "win-iconv/readme.txt at master · win-iconv/win-iconv · GitHub". GitHub .
  2. "R: Convert Character Vector between Encodings". astrostatistics.psu.edu. Retrieved 21 April 2018.
  3. "iconv". pubs.opengroup.org. Retrieved 21 April 2018.
  4. "iconv". www.opengroup.org. Retrieved 21 April 2018.
  5. 1 2 "libiconv - GNU Project - Free Software Foundation (FSF)". www.gnu.org. Retrieved 21 April 2018.
  6. "iconv(3C)". docstore.mik.ua. Retrieved 21 April 2018.
  7. "glibc: iconv/iconv.c" . Retrieved 30 November 2016.[ permanent dead link ]
  8. "glibc: iconv/iconv_prog.c" . Retrieved 30 November 2016.[ permanent dead link ]
  9. "Cygwin Package Search: libiconv". Archived from the original on 30 November 2016. Retrieved 30 November 2016.
  10. "LibIconv for Windows". gnuwin32.sourceforge.net. Retrieved 21 April 2018.
  11. "win32-iconv". GitHub. Retrieved 30 November 2016.
  12. IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM . Retrieved 5 September 2020.
  13. "IBM Knowledge Center". www-01.ibm.com. Retrieved 21 April 2018.