iconv — convert text from one character encoding to another

Examples (TL;DR)


iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]...


The iconv program reads in text in one encoding and outputs the text in another encoding. If no input files are given, or if it is given as a dash (-), iconv reads from standard input. If no output file is given, iconv writes to standard output.

If no from-encoding is given, the default is derived from the current locale's character encoding. If no to-encoding is given, the default is derived from the current locale's character encoding.


-f from-encoding, --from-code=from-encoding

Use from-encoding for input characters.

-t to-encoding, --to-code=to-encoding

Use to-encoding for output characters.

If the string //IGNORE is appended to to-encoding, characters that cannot be converted are discarded and an error is printed after conversion.

If the string //TRANSLIT is appended to to-encoding, characters being converted are transliterated when needed and possible. This means that when a character cannot be represented in the target character set, it can be approximated through one or several similar looking characters. Characters that are outside of the target character set and cannot be transliterated are replaced with a question mark (?) in the output.

-l, --list

List all known character set encodings.


Silently discard characters that cannot be converted instead of terminating when encountering such characters.

-o outputfile, --output=outputfile

Use outputfile for output.

-s, --silent

This option is ignored; it is provided only for compatibility.


Print progress information on standard error when processing multiple files.

-?, --help

Print a usage summary and exit.


Print a short usage summary and exit.

-V, --version

Print the version number, license, and disclaimer of warranty for iconv.

Exit Status

Zero on success, nonzero on errors.


Internally, the iconv program uses the iconv(3) function which in turn uses gconv modules (dynamically loaded shared libraries) to convert to and from a character set. Before calling iconv(3), the iconv program must first allocate a conversion descriptor using iconv_open(3). The operation of the latter function is influenced by the setting of the GCONV_PATH environment variable:



Usual default gconv module path.


Usual system default gconv module configuration file.


Usual system gconv module configuration cache.

Conforming to



Convert text from the ISO 8859-15 character encoding to UTF-8:

$ iconv -f ISO-8859-15 -t UTF-8 < input.txt > output.txt

The next example converts from UTF-8 to ASCII, transliterating when possible:

$ echo abc ß α € àḃç | iconv -f UTF-8 -t ASCII//TRANSLIT
abc ss ? EUR abc

See Also

locale(1), uconv(1), iconv(3), nl_langinfo(3), charsets(7), iconvconfig(8)


This page is part of release 5.04 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.

Referenced By

afp.conf(5), charmap(5), charsets(7), dasher(1), db2x_docbook2man(1), db2x_docbook2texi(1), db2x_manxml(1), db2x_texixml(1), debchange(1), dictl(1), dos2unix(1), enca(1), fluxbox-menu(5), gauche-cesconv(1), gmdb2(1), hivexregedit(1), hspell(1), iconvconfig(8), iconv_open(3), intltool-merge(8), jfbterm(1), jfbterm.conf(5), locale(5), locale(7), manconv(1), mdb-array(1), mdb-export(1), mdb-header(1), mdb-hexdump(1), mdb-parsecsv(1), mdb-prop(1), mdb-schema(1), mdb-sql(1), mdb-tables(1), mdb-ver(1), muttrc(5), perlebcdic(1), piconv(1), rifiuti(1), uconv(1), uniconv(1), vis(1), xmlcopyeditor(1), yaz-iconv(1).

2019-03-06 GNU Linux User Manual