![](http://image.absoluteastronomy.com/images//topicimages/noimage.gif)
Iconv
Encyclopedia
iconv is a computer program
and a standardized API
used to convert between different character encoding
s.
operating systems.
Initially appearing on the HP-UX
operating system, it was standardized within XPG4 and is part of the Single UNIX Specification
(SUS).
All recent Linux distribution
s contain a free implementation of
which is the C library for current Linux systems. To use it, the GNU glibc locale
s need to be installed, which are provided as a separate package (usually named glibc-locale) normally installed by default.
, the iconv binary (and thus, likely also the API) is provided by the Cygwin
and GnuWin32
environments.
iconv is also available from many programming languages. For example one of the libraries supported by PHP
http://www.php.net/iconv (also under Windows using a DLL
file), so it is possible to use iconv from a PHP program easily.
iconv -f iso-8859-1
Convert infile from ISO-8859-1 to UTF-8 and output to outfile.
iconv -f iso-8859-1 -t utf-8outfile
Implementations of the iconv API:
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
and a standardized API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...
used to convert between different character encoding
Character encoding
A character encoding system consists of a code that pairs each character from a given repertoire with something else, such as a sequence of natural numbers, octets or electrical pulses, in order to facilitate the transmission of data through telecommunication networks or storage of text in...
s.
iconv API
The iconv API is the standard programming interface for converting character strings from one character encoding to another in Unix-likeUnix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....
operating systems.
Initially appearing on the HP-UX
HP-UX
HP-UX is Hewlett-Packard's proprietary implementation of the Unix operating system, based on UNIX System V and first released in 1984...
operating system, it was standardized within XPG4 and is part of the Single UNIX Specification
Single UNIX Specification
The Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for the name "Unix"...
(SUS).
All recent Linux distribution
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
s contain a free implementation of
iconv
as part of the GNU C LibraryGNU C Library
The GNU C Library, commonly known as glibc, is the C standard library released by the GNU Project. Originally written by the Free Software Foundation for the GNU operating system, the library's development has been overseen by a committee since 2001, with Ulrich Drepper from Red Hat as the lead...
which is the C library for current Linux systems. To use it, the GNU glibc locale
Locale
In computing, locale is a set of parameters that defines the user's language, country and any special variant preferences that the user wants to see in their user interface...
s need to be installed, which are provided as a separate package (usually named glibc-locale) normally installed by default.
Compatibility
Under WindowsMicrosoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, the iconv binary (and thus, likely also the API) is provided by the Cygwin
Cygwin
Cygwin is a Unix-like environment and command-line interface for Microsoft Windows. Cygwin provides native integration of Windows-based applications, data, and other system resources with applications, software tools, and data of the Unix-like environment...
and GnuWin32
GnuWin32
The GnuWin32 project provides native ports in the form of runnable computer programs, patches, and source code for various GNU and open source tools and software, much of it modified to run on the 32-bit Windows platform...
environments.
iconv is also available from many programming languages. For example one of the libraries supported by PHP
PHP
PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...
http://www.php.net/iconv (also under Windows using a DLL
Dynamic-link library
Dynamic-link library , or DLL, is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems...
file), so it is possible to use iconv from a PHP program easily.
Examples
Convert stdin from ISO-8859-1 to current locale and output to stdout.iconv -f iso-8859-1
Convert infile from ISO-8859-1 to UTF-8 and output to outfile.
iconv -f iso-8859-1 -t utf-8
External links
- extensive iconv HP-UX manual page with example code
- iconv OpenGroup Standards page
- giconv a graphical interface to a patched libiconv version that recodes ASMO449+ to UTF-8UTF-8UTF-8 is a multibyte character encoding for Unicode. Like UTF-16 and UTF-32, UTF-8 can represent every character in the Unicode character set. Unlike them, it is backward-compatible with ASCII and avoids the complications of endianness and byte order marks...
Implementations of the iconv API:
- GNU libiconv, a free iconv implementation, licensed under the LGPL
- FreeBSD port of iconv
- Citrus, the NetBSD clib implementation, under NetBSD license (assumed)