iconv(1)
Name
iconv − international codeset conversion
Syntax
iconv [−d] -f fromcodeset -t tocodeset [file...]
Description
The iconv command converts the encoding of characters in its input from one codeset to another codeset. The fromcodeset argument specifies the codeset used to encode the data in the input; that is, it specifies the input codeset. The tocodeset argument specifies the codeset to which you want the input data converted; that is, it specifies the output codeset. The iconv command performs the conversion by reading rules from a conversion table you create. The command reads its input from standard input or from one or more files named on the command line. The command writes its output to standard output.
You define conversion rules in a conversion table. The conversion rules specify how iconv converts a particular character or group of characters, which are called tokens. The conversion table is a text file that contains two lists. In the left-hand list, you specify each token you want iconv to convert. In the right-hand list, you specify the token you want iconv to create in the output file. For example, if you issued the following command:
% iconv -fupper -tlower conversion_file
This command uses the conversion table located in the file /usr/lib/intln/conv/upper_lower, that specifies how to convert from an uppercase codeset to a lowercase codeset. The following shows part of the conversion table:
#
# Converts from uppercase to lowercase
#
#Input tokenOutput token
#-------------------------------
Aa
Bb
Cc
Dd
Ee
Ff
Gg
.
.
.
Zz
#
# Convert tabs to spaces using octal
#
\011 \040\040\040
#
# Convert the A umlaut to lowercase
#
A a
Each line in the conversion table must contain two strings, an input token and an output token. The tokens must be delimited with spaces or tabs. The backslash character ( \ ) either causes the iconv command to recognize a character it normally ignores or introduces a three digit octal constant. All octal constants in the conversion table must contain three digits. Lines that begin with a hash symbol (#) are comments. The iconv command ignores comment lines and blank lines.
You name the conversion table file using the name of the input codeset, an underscore, and the name of the output codeset. For example, if your input codeset is ISO646 and your output codeset is ISO8859, you might name the conversion table file 646_8859.
The iconv command searches for the conversion table file in the directory specified by the ${ICONV}/conv pathname. If the ${ICONV} environment variable is undefined, the iconv command searches the /usr/lib/intln/conv directory.
The operation of the iconv command is 8-bit transparent.
Options
−dDeletes any characters that are omitted from the conversion table. By default, the iconv command sends characters that are omitted to the output file without modifying them.
−fSpecifies the name of the input codeset.
−tSpecifies the name of the output codeset.
Restrictions
The conversion table file name can contain no more than 255 characters. You may need to truncate the name of the input codeset or output codeset when you name the conversion table file.
Examples
The following shows an example of using the iconv command:
This command converts the data in mydatafile from ISO646 encoding to ISO8859 encoding. The iconv command reads the conversion table from the ${ICONV}/conv/646_8859 file. If the ${ICONV} environment variable is undefined, the iconv command uses the /usr/lib/intln/conv/646_8859 file. If that file does not exist, the iconv command issues an error message and does not convert the data file. The iconv command writes the results of any conversion it performs to the file newdatafile
Files
/usr/lib/conv/fromcodeset_tocodeset
${ICONV}/conv/fromcodeset_tocodeset
See Also
environ(5int)
Guide to Developing International Software