1 .\" Copyright (c) Free Software Foundation, Inc.
3 .\" This is free documentation; you can redistribute it and/or
4 .\" modify it under the terms of the GNU General Public License as
5 .\" published by the Free Software Foundation; either version 3 of
6 .\" the License, or (at your option) any later version.
8 .\" References consulted:
9 .\" GNU glibc-2 source code and manual
10 .\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
12 .TH ICONV_OPEN 3 "May 20, 2023" "GNU"
14 iconv_open \- allocate descriptor for character set conversion
19 .BI "iconv_t iconv_open (const char* " tocode ", const char* " fromcode );
22 The \fBiconv_open\fP function allocates a conversion descriptor suitable
23 for converting byte sequences from character encoding \fIfromcode\fP to
24 character encoding \fItocode\fP.
26 The values permitted for \fIfromcode\fP and \fItocode\fP and the supported
27 combinations are system dependent. For the libiconv library, the following
28 encodings are supported, in all combinations.
33 ASCII, ISO\-8859\-{1,2,3,4,5,7,9,10,13,14,15,16},
34 KOI8\-R, KOI8\-U, KOI8\-RU,
35 CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131},
36 Mac{Roman,CentralEurope,Iceland,Croatian,Romania},
37 Mac{Cyrillic,Ukraine,Greek,Turkish},
43 ISO\-8859\-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
48 EUC\-JP, SHIFT_JIS, CP932, ISO\-2022\-JP, ISO\-2022\-JP\-2, ISO\-2022\-JP\-1,
54 EUC\-CN, HZ, GBK, CP936, GB18030, GB18030:2022, EUC\-TW, BIG5, CP950,
55 BIG5\-HKSCS, BIG5\-HKSCS:2004, BIG5\-HKSCS:2001, BIG5\-HKSCS:1999,
56 ISO\-2022\-CN, ISO\-2022\-CN\-EXT
61 EUC\-KR, CP949, ISO\-2022\-KR, JOHAB
71 Georgian\-Academy, Georgian\-PS
86 TIS\-620, CP874, MacThai
109 UCS\-2, UCS\-2BE, UCS\-2LE
112 UCS\-4, UCS\-4BE, UCS\-4LE
115 UTF\-16, UTF\-16BE, UTF\-16LE
118 UTF\-32, UTF\-32BE, UTF\-32LE
126 Full Unicode, in terms of \fBuint16_t\fP or \fBuint32_t\fP
127 (with machine dependent endianness and alignment)
130 UCS\-2\-INTERNAL, UCS\-4\-INTERNAL
132 Locale dependent, in terms of \fBchar\fP or \fBwchar_t\fP
133 (with machine dependent endianness and alignment, and with semantics
134 depending on the OS and the current LC_CTYPE locale facet)
139 When configured with the option \fB\-\-enable\-extra\-encodings\fP, it also
140 provides support for a few extra encodings:
144 CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}
155 EUC\-JISX0213, Shift_JISX0213, ISO\-2022\-JP\-3
160 BIG5\-2003 (experimental)
170 ATARIST, RISCOS\-LATIN1
173 EBCDIC compatible (not ASCII compatible, very rarely used)
179 IBM-{037,273,277,278,280,282,284,285,297,423,500,870,871,875,880},
180 IBM-{905,924,1025,1026,1047,1112,1122,1123,1140,1141,1142,1143},
181 IBM-{1144,1145,1146,1147,1148,1149,1153,1154,1155,1156,1157,1158},
188 IBM-{424,425,12712,16804}
220 The empty encoding name "" is equivalent to "char": it denotes the
221 locale dependent character encoding.
223 When the string "//TRANSLIT" is appended to \fItocode\fP, transliteration
224 is activated. This means that when a character cannot be represented in the
225 target character set, it can be approximated through one or several characters
226 that look similar to the original character.
228 When the string "//IGNORE" is appended to \fItocode\fP, characters that
229 cannot be represented in the target character set will be silently discarded.
231 The resulting conversion descriptor can be used with \fBiconv\fP any number
232 of times. It remains valid until deallocated using \fBiconv_close\fP.
234 A conversion descriptor contains a conversion state. After creation using
235 \fBiconv_open\fP, the state is in the initial state. Using \fBiconv\fP
236 modifies the descriptor's conversion state. (This implies that a conversion
237 descriptor can not be used in multiple threads simultaneously.) To bring the
238 state back to the initial state, use \fBiconv\fP with NULL as \fIinbuf\fP
241 The \fBiconv_open\fP function returns a freshly allocated conversion
242 descriptor. In case of error, it sets \fBerrno\fP and returns (iconv_t)(\-1).
244 The following error can occur, among others:
247 The conversion from \fIfromcode\fP to \fItocode\fP is not supported by the