Prefer #include <...> for system headers.
[libiconv.git] / lib / encodings.def
blobe5063d329886818033e6d3aa14618c75d8b07852
1 /* Copyright (C) 1999-2011 Free Software Foundation, Inc.
2 This file is part of the GNU LIBICONV Library.
4 The GNU LIBICONV Library is free software; you can redistribute it
5 and/or modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either version 2.1
7 of the License, or (at your option) any later version.
9 The GNU LIBICONV Library is distributed in the hope that it will be
10 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public
15 License along with the GNU LIBICONV Library; see the file COPYING.LIB.
16 If not, see <https://www.gnu.org/licenses/>. */
18 /* The list of all system independent user-visible encodings. */
20 /* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined
21 in a file named "foobar.h" through the functions foobar_mbtowc and
22 foobar_wctomb (and possibly foobar_reset). */
24 /* DEFENCODING(( name, alias1, ..., ),
25 xxx,
26 { xxx_mbtowc, xxx_flushwc },
27 { xxx_wctomb, xxx_reset })
28 defines an encoding with the given name and aliases. (There is no
29 difference between a name and an alias. By convention, the name is chosen
30 as the preferred MIME name or the standard name.)
31 All names and aliases must be in ASCII. Case is not significant, but
32 for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is
33 preferred. For all names and aliases, note where it comes from.
34 xxx is the name as used in the C code (lowercase).
38 DEFENCODING(( "US-ASCII", /* IANA */
39 "ASCII", /* IANA, JDK 1.1 */
40 "ISO646-US", /* IANA */
41 "ISO_646.IRV:1991", /* IANA */
42 "ISO-IR-6", /* IANA */
43 "ANSI_X3.4-1968", /* IANA */
44 "ANSI_X3.4-1986", /* IANA */
45 "CP367", /* IANA */
46 "IBM367", /* IANA */
47 "US", /* IANA */
48 "csASCII", /* IANA */
49 /*"ISO646.1991-IRV", X11R6.4 */
51 ascii,
52 { ascii_mbtowc, NULL }, { ascii_wctomb, NULL })
53 #ifdef USE_SOLARIS_ALIASES
54 DEFALIAS( "646", /* Solaris */
55 ascii)
56 #endif
58 /* General multi-byte encodings */
60 DEFENCODING(( "UTF-8", /* IANA, RFC 2279 */
61 /*"UTF8", JDK 1.1 */
62 /*"CP65001", Windows */
64 utf8,
65 { utf8_mbtowc, NULL }, { utf8_wctomb, NULL })
66 #ifdef USE_HPUX_ALIASES
67 DEFALIAS( "UTF8", /* HP-UX */
68 utf8)
69 #endif
71 DEFENCODING(( "UCS-2", /* glibc */
72 "ISO-10646-UCS-2", /* IANA */
73 "csUnicode", /* IANA */
75 ucs2,
76 { ucs2_mbtowc, NULL }, { ucs2_wctomb, NULL })
78 DEFENCODING(( "UCS-2BE", /* glibc */
79 "UNICODEBIG", /* glibc */
80 "UNICODE-1-1", /* IANA */
81 "csUnicode11", /* IANA */
82 /*"CP1201", Windows */
84 ucs2be,
85 { ucs2be_mbtowc, NULL }, { ucs2be_wctomb, NULL })
87 DEFENCODING(( "UCS-2LE", /* glibc */
88 "UNICODELITTLE", /* glibc */
89 /*"CP1200", Windows */
91 ucs2le,
92 { ucs2le_mbtowc, NULL }, { ucs2le_wctomb, NULL })
94 DEFENCODING(( "UCS-4", /* glibc */
95 "ISO-10646-UCS-4", /* IANA */
96 "csUCS4", /* IANA */
98 ucs4,
99 { ucs4_mbtowc, NULL }, { ucs4_wctomb, NULL })
101 DEFENCODING(( "UCS-4BE", /* glibc */
102 /*"CP12001", Windows */
104 ucs4be,
105 { ucs4be_mbtowc, NULL }, { ucs4be_wctomb, NULL })
107 DEFENCODING(( "UCS-4LE", /* glibc */
108 /*"CP12000", Windows */
110 ucs4le,
111 { ucs4le_mbtowc, NULL }, { ucs4le_wctomb, NULL })
113 DEFENCODING(( "UTF-16", /* IANA, RFC 2781 */
115 utf16,
116 { utf16_mbtowc, NULL }, { utf16_wctomb, NULL })
118 DEFENCODING(( "UTF-16BE", /* IANA, RFC 2781 */
120 utf16be,
121 { utf16be_mbtowc, NULL }, { utf16be_wctomb, NULL })
123 DEFENCODING(( "UTF-16LE", /* IANA, RFC 2781 */
125 utf16le,
126 { utf16le_mbtowc, NULL }, { utf16le_wctomb, NULL })
128 DEFENCODING(( "UTF-32", /* IANA, Unicode 3.1 */
130 utf32,
131 { utf32_mbtowc, NULL }, { utf32_wctomb, NULL })
133 DEFENCODING(( "UTF-32BE", /* IANA, Unicode 3.1 */
135 utf32be,
136 { utf32be_mbtowc, NULL }, { utf32be_wctomb, NULL })
138 DEFENCODING(( "UTF-32LE", /* IANA, Unicode 3.1 */
140 utf32le,
141 { utf32le_mbtowc, NULL }, { utf32le_wctomb, NULL })
143 DEFENCODING(( "UTF-7", /* IANA, RFC 2152 */
144 "UNICODE-1-1-UTF-7", /* IANA, RFC 1642 */
145 "csUnicode11UTF7", /* IANA */
146 /*"CP65000", Windows */
148 utf7,
149 { utf7_mbtowc, NULL }, { utf7_wctomb, utf7_reset })
151 DEFENCODING(( "UCS-2-INTERNAL", /* libiconv */
153 ucs2internal,
154 { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL })
156 DEFENCODING(( "UCS-2-SWAPPED", /* libiconv */
158 ucs2swapped,
159 { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL })
161 DEFENCODING(( "UCS-4-INTERNAL", /* libiconv */
163 ucs4internal,
164 { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL })
166 DEFENCODING(( "UCS-4-SWAPPED", /* libiconv */
168 ucs4swapped,
169 { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL })
171 DEFENCODING(( "C99",
173 c99,
174 { c99_mbtowc, NULL }, { c99_wctomb, NULL })
176 DEFENCODING(( "JAVA",
178 java,
179 { java_mbtowc, NULL }, { java_wctomb, NULL })
181 /* Standard 8-bit encodings */
183 DEFENCODING(( "ISO-8859-1", /* IANA */
184 "ISO_8859-1", /* IANA */
185 "ISO_8859-1:1987", /* IANA */
186 "ISO-IR-100", /* IANA */
187 "CP819", /* IANA */
188 "IBM819", /* IANA */
189 "LATIN1", /* IANA */
190 "L1", /* IANA */
191 "csISOLatin1", /* IANA */
192 "ISO8859-1", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
193 /*"ISO8859_1", JDK 1.1 */
194 /*"CP28591", Windows */
196 iso8859_1,
197 { iso8859_1_mbtowc, NULL }, { iso8859_1_wctomb, NULL })
198 #ifdef USE_HPUX_ALIASES
199 DEFALIAS( "ISO88591", /* HP-UX */
200 iso8859_1)
201 #endif
203 DEFENCODING(( "ISO-8859-2", /* IANA */
204 "ISO_8859-2", /* IANA */
205 "ISO_8859-2:1987", /* IANA */
206 "ISO-IR-101", /* IANA */
207 "LATIN2", /* IANA */
208 "L2", /* IANA */
209 "csISOLatin2", /* IANA */
210 "ISO8859-2", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
211 /*"ISO8859_2", JDK 1.1 */
212 /*"CP28592", Windows */
214 iso8859_2,
215 { iso8859_2_mbtowc, NULL }, { iso8859_2_wctomb, NULL })
216 #ifdef USE_HPUX_ALIASES
217 DEFALIAS( "ISO88592", /* HP-UX */
218 iso8859_2)
219 #endif
221 DEFENCODING(( "ISO-8859-3", /* IANA */
222 "ISO_8859-3", /* IANA */
223 "ISO_8859-3:1988", /* IANA */
224 "ISO-IR-109", /* IANA */
225 "LATIN3", /* IANA */
226 "L3", /* IANA */
227 "csISOLatin3", /* IANA */
228 "ISO8859-3", /* X11R6.4, glibc, FreeBSD, Solaris */
229 /*"ISO8859_3", JDK 1.1 */
230 /*"CP28593", Windows */
232 iso8859_3,
233 { iso8859_3_mbtowc, NULL }, { iso8859_3_wctomb, NULL })
235 DEFENCODING(( "ISO-8859-4", /* IANA */
236 "ISO_8859-4", /* IANA */
237 "ISO_8859-4:1988", /* IANA */
238 "ISO-IR-110", /* IANA */
239 "LATIN4", /* IANA */
240 "L4", /* IANA */
241 "csISOLatin4", /* IANA */
242 "ISO8859-4", /* X11R6.4, glibc, FreeBSD, OSF/1, Solaris */
243 /*"ISO8859_4", JDK 1.1 */
244 /*"CP28594", Windows */
246 iso8859_4,
247 { iso8859_4_mbtowc, NULL }, { iso8859_4_wctomb, NULL })
249 DEFENCODING(( "ISO-8859-5", /* IANA */
250 "ISO_8859-5", /* IANA */
251 "ISO_8859-5:1988", /* IANA */
252 "ISO-IR-144", /* IANA */
253 "CYRILLIC", /* IANA */
254 "csISOLatinCyrillic", /* IANA */
255 "ISO8859-5", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
256 /*"ISO8859_5", JDK 1.1 */
257 /*"CP28595", Windows */
259 iso8859_5,
260 { iso8859_5_mbtowc, NULL }, { iso8859_5_wctomb, NULL })
261 #ifdef USE_HPUX_ALIASES
262 DEFALIAS( "ISO88595", /* HP-UX */
263 iso8859_5)
264 #endif
266 DEFENCODING(( "ISO-8859-6", /* IANA */
267 "ISO_8859-6", /* IANA */
268 "ISO_8859-6:1987", /* IANA */
269 "ISO-IR-127", /* IANA */
270 "ECMA-114", /* IANA */
271 "ASMO-708", /* IANA */
272 "ARABIC", /* IANA */
273 "csISOLatinArabic", /* IANA */
274 "ISO8859-6", /* X11R6.4, glibc, FreeBSD, AIX, Solaris */
275 /*"ISO8859_6", JDK 1.1 */
276 /*"CP28596", Windows */
278 iso8859_6,
279 { iso8859_6_mbtowc, NULL }, { iso8859_6_wctomb, NULL })
280 #ifdef USE_HPUX_ALIASES
281 DEFALIAS( "ISO88596", /* HP-UX */
282 iso8859_6)
283 #endif
285 DEFENCODING(( "ISO-8859-7", /* IANA, RFC 1947 */
286 "ISO_8859-7", /* IANA */
287 "ISO_8859-7:1987", /* IANA */
288 "ISO_8859-7:2003",
289 "ISO-IR-126", /* IANA */
290 "ECMA-118", /* IANA */
291 "ELOT_928", /* IANA */
292 "GREEK8", /* IANA */
293 "GREEK", /* IANA */
294 "csISOLatinGreek", /* IANA */
295 "ISO8859-7", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
296 /*"ISO8859_7", JDK 1.1 */
297 /*"CP28597", Windows */
299 iso8859_7,
300 { iso8859_7_mbtowc, NULL }, { iso8859_7_wctomb, NULL })
301 #ifdef USE_HPUX_ALIASES
302 DEFALIAS( "ISO88597", /* HP-UX */
303 iso8859_7)
304 #endif
306 DEFENCODING(( "ISO-8859-8", /* IANA */
307 "ISO_8859-8", /* IANA */
308 "ISO_8859-8:1988", /* IANA */
309 "ISO-IR-138", /* IANA */
310 "HEBREW", /* IANA */
311 "csISOLatinHebrew", /* IANA */
312 "ISO8859-8", /* X11R6.4, glibc, FreeBSD, AIX, OSF/1, Solaris */
313 /*"ISO8859_8", JDK 1.1 */
314 /*"CP28598", Windows */
315 /*"CP38598", Windows */
317 iso8859_8,
318 { iso8859_8_mbtowc, NULL }, { iso8859_8_wctomb, NULL })
319 #ifdef USE_HPUX_ALIASES
320 DEFALIAS( "ISO88598", /* HP-UX */
321 iso8859_8)
322 #endif
324 DEFENCODING(( "ISO-8859-9", /* IANA */
325 "ISO_8859-9", /* IANA */
326 "ISO_8859-9:1989", /* IANA */
327 "ISO-IR-148", /* IANA */
328 "LATIN5", /* IANA */
329 "L5", /* IANA */
330 "csISOLatin5", /* IANA */
331 "ISO8859-9", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
332 /*"ISO8859_9", JDK 1.1 */
333 /*"CP28599", Windows */
335 iso8859_9,
336 { iso8859_9_mbtowc, NULL }, { iso8859_9_wctomb, NULL })
337 #ifdef USE_HPUX_ALIASES
338 DEFALIAS( "ISO88599", /* HP-UX */
339 iso8859_9)
340 #endif
342 DEFENCODING(( "ISO-8859-10", /* IANA */
343 "ISO_8859-10",
344 "ISO_8859-10:1992", /* IANA */
345 "ISO-IR-157", /* IANA */
346 "LATIN6", /* IANA */
347 "L6", /* IANA */
348 "csISOLatin6", /* IANA */
349 "ISO8859-10", /* X11R6.4, glibc, FreeBSD */
351 iso8859_10,
352 { iso8859_10_mbtowc, NULL }, { iso8859_10_wctomb, NULL })
354 DEFENCODING(( "ISO-8859-11", /* glibc */
355 "ISO_8859-11",
356 "ISO8859-11", /* X11R6.7, glibc */
358 iso8859_11,
359 { iso8859_11_mbtowc, NULL }, { iso8859_11_wctomb, NULL })
361 DEFENCODING(( "ISO-8859-13", /* IANA, glibc */
362 "ISO_8859-13",
363 "ISO-IR-179", /* glibc */
364 "LATIN7", /* glibc */
365 "L7", /* glibc */
366 "ISO8859-13", /* glibc, FreeBSD */
367 /*"CP28603", Windows */
369 iso8859_13,
370 { iso8859_13_mbtowc, NULL }, { iso8859_13_wctomb, NULL })
371 #ifdef USE_AIX_ALIASES
372 DEFALIAS( "IBM-921", /* AIX */
373 iso8859_13)
374 #endif
376 DEFENCODING(( "ISO-8859-14", /* IANA, glibc */
377 "ISO_8859-14", /* IANA */
378 "ISO_8859-14:1998", /* IANA, glibc */
379 "ISO-IR-199", /* IANA */
380 "LATIN8", /* IANA, glibc */
381 "L8", /* IANA, glibc */
382 "ISO-CELTIC", /* IANA */
383 "ISO8859-14", /* glibc, FreeBSD */
385 iso8859_14,
386 { iso8859_14_mbtowc, NULL }, { iso8859_14_wctomb, NULL })
388 DEFENCODING(( "ISO-8859-15", /* IANA, glibc */
389 "ISO_8859-15", /* IANA */
390 "ISO_8859-15:1998", /* glibc */
391 "ISO-IR-203",
392 "LATIN-9", /* IANA */
393 "ISO8859-15", /* glibc, FreeBSD, AIX, OSF/1, Solaris */
394 /*"CP28605", Windows */
396 iso8859_15,
397 { iso8859_15_mbtowc, NULL }, { iso8859_15_wctomb, NULL })
398 #ifdef USE_HPUX_ALIASES
399 DEFALIAS( "ISO885915", /* HP-UX */
400 iso8859_15)
401 #endif
403 DEFENCODING(( "ISO-8859-16", /* IANA */
404 "ISO_8859-16", /* IANA */
405 "ISO_8859-16:2001", /* IANA */
406 "ISO-IR-226", /* IANA */
407 "LATIN10", /* IANA */
408 "L10", /* IANA */
409 "ISO8859-16", /* glibc, FreeBSD */
411 iso8859_16,
412 { iso8859_16_mbtowc, NULL }, { iso8859_16_wctomb, NULL })
414 DEFENCODING(( "KOI8-R", /* IANA, RFC 1489, X11R6.4, JDK 1.1 */
415 "csKOI8R", /* IANA */
416 /*"CP20866", Windows */
418 koi8_r,
419 { koi8_r_mbtowc, NULL }, { koi8_r_wctomb, NULL })
421 DEFENCODING(( "KOI8-U", /* IANA, RFC 2319 */
423 koi8_u,
424 { koi8_u_mbtowc, NULL }, { koi8_u_wctomb, NULL })
426 DEFENCODING(( "KOI8-RU",
427 /*"CP21866", Windows */
429 koi8_ru,
430 { koi8_ru_mbtowc, NULL }, { koi8_ru_wctomb, NULL })
432 /* Windows 8-bit encodings */
434 DEFENCODING(( "CP1250", /* JDK 1.1 */
435 "WINDOWS-1250", /* IANA */
436 "MS-EE",
438 cp1250,
439 { cp1250_mbtowc, NULL }, { cp1250_wctomb, NULL })
441 DEFENCODING(( "CP1251", /* JDK 1.1 */
442 "WINDOWS-1251", /* IANA */
443 "MS-CYRL",
445 cp1251,
446 { cp1251_mbtowc, NULL }, { cp1251_wctomb, NULL })
447 #ifdef USE_SOLARIS_ALIASES
448 DEFALIAS( "ANSI-1251", /* Solaris */
449 cp1251)
450 #endif
452 DEFENCODING(( "CP1252", /* JDK 1.1 */
453 "WINDOWS-1252", /* IANA */
454 "MS-ANSI",
456 cp1252,
457 { cp1252_mbtowc, NULL }, { cp1252_wctomb, NULL })
458 #ifdef USE_AIX_ALIASES
459 DEFALIAS( "IBM-1252", /* AIX */
460 cp1252)
461 #endif
463 DEFENCODING(( "CP1253", /* JDK 1.1 */
464 "WINDOWS-1253", /* IANA */
465 "MS-GREEK",
467 cp1253,
468 { cp1253_mbtowc, NULL }, { cp1253_wctomb, NULL })
470 DEFENCODING(( "CP1254", /* JDK 1.1 */
471 "WINDOWS-1254", /* IANA */
472 "MS-TURK",
474 cp1254,
475 { cp1254_mbtowc, NULL }, { cp1254_wctomb, NULL })
477 DEFENCODING(( "CP1255", /* JDK 1.1 */
478 "WINDOWS-1255", /* IANA */
479 "MS-HEBR",
481 cp1255,
482 { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL })
484 DEFENCODING(( "CP1256", /* JDK 1.1 */
485 "WINDOWS-1256", /* IANA */
486 "MS-ARAB",
488 cp1256,
489 { cp1256_mbtowc, NULL }, { cp1256_wctomb, NULL })
491 DEFENCODING(( "CP1257", /* JDK 1.1 */
492 "WINDOWS-1257", /* IANA */
493 "WINBALTRIM",
495 cp1257,
496 { cp1257_mbtowc, NULL }, { cp1257_wctomb, NULL })
498 DEFENCODING(( "CP1258", /* JDK 1.1 */
499 "WINDOWS-1258", /* IANA */
501 cp1258,
502 { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL })
504 /* DOS 8-bit encodings */
506 DEFENCODING(( "CP850", /* IANA, JDK 1.1 */
507 "IBM850", /* IANA */
508 "850", /* IANA */
509 "csPC850Multilingual", /* IANA */
511 cp850,
512 { cp850_mbtowc, NULL }, { cp850_wctomb, NULL })
513 #ifdef USE_AIX_ALIASES
514 DEFALIAS( "IBM-850", /* AIX */
515 cp850)
516 #endif
518 DEFENCODING(( "CP862", /* IANA, JDK 1.1 */
519 "IBM862", /* IANA */
520 "862", /* IANA */
521 "csPC862LatinHebrew", /* IANA */
523 cp862,
524 { cp862_mbtowc, NULL }, { cp862_wctomb, NULL })
526 DEFENCODING(( "CP866", /* IANA, JDK 1.1 */
527 "IBM866", /* IANA */
528 "866", /* IANA */
529 "csIBM866", /* IANA */
531 cp866,
532 { cp866_mbtowc, NULL }, { cp866_wctomb, NULL })
534 DEFENCODING(( "CP1131", /* FreeBSD, MacOS X */
536 cp1131,
537 { cp1131_mbtowc, NULL }, { cp1131_wctomb, NULL })
538 #ifdef USE_AIX_ALIASES
539 DEFALIAS( "IBM-1131", /* AIX */
540 cp1131)
541 #endif
543 /* Macintosh 8-bit encodings */
545 DEFENCODING(( "MacRoman", /* JDK 1.1 */
546 /* This is the best table for MACINTOSH. The ones */
547 /* in glibc and FreeBSD-iconv are bad quality. */
548 "MACINTOSH", /* IANA */
549 "MAC", /* IANA */
550 "csMacintosh", /* IANA */
551 /*"CP10000", Windows */
553 mac_roman,
554 { mac_roman_mbtowc, NULL }, { mac_roman_wctomb, NULL })
556 DEFENCODING(( "MacCentralEurope", /* JDK 1.1 */
557 /*"CP10029", Windows */
559 mac_centraleurope,
560 { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL })
562 DEFENCODING(( "MacIceland", /* JDK 1.1 */
563 /*"CP10079", Windows */
565 mac_iceland,
566 { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL })
568 DEFENCODING(( "MacCroatian", /* JDK 1.1 */
569 /*"CP10082", Windows */
571 mac_croatian,
572 { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL })
574 DEFENCODING(( "MacRomania", /* JDK 1.1 */
575 /*"CP10010", Windows */
577 mac_romania,
578 { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL })
580 DEFENCODING(( "MacCyrillic", /* JDK 1.1 */
581 /*"CP10007", Windows */
583 mac_cyrillic,
584 { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL })
586 DEFENCODING(( "MacUkraine", /* JDK 1.1 */
587 /*"CP10017", Windows */
589 mac_ukraine,
590 { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL })
592 DEFENCODING(( "MacGreek", /* JDK 1.1 */
593 /*"CP10006", Windows */
595 mac_greek,
596 { mac_greek_mbtowc, NULL }, { mac_greek_wctomb, NULL })
598 DEFENCODING(( "MacTurkish", /* JDK 1.1 */
599 /*"CP10081", Windows */
601 mac_turkish,
602 { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL })
604 DEFENCODING(( "MacHebrew", /* JDK 1.1 */
605 /*"CP10005", Windows */
607 mac_hebrew,
608 { mac_hebrew_mbtowc, NULL }, { mac_hebrew_wctomb, NULL })
610 DEFENCODING(( "MacArabic", /* JDK 1.1 */
611 /*"CP10004", Windows */
613 mac_arabic,
614 { mac_arabic_mbtowc, NULL }, { mac_arabic_wctomb, NULL })
616 DEFENCODING(( "MacThai", /* JDK 1.1 */
617 /*"CP10021", Windows */
619 mac_thai,
620 { mac_thai_mbtowc, NULL }, { mac_thai_wctomb, NULL })
622 /* Other platform specific 8-bit encodings */
624 DEFENCODING(( "HP-ROMAN8", /* IANA, X11R6.4 */
625 "ROMAN8", /* IANA */
626 "R8", /* IANA */
627 "csHPRoman8", /* IANA */
629 hp_roman8,
630 { hp_roman8_mbtowc, NULL }, { hp_roman8_wctomb, NULL })
632 DEFENCODING(( "NEXTSTEP",
634 nextstep,
635 { nextstep_mbtowc, NULL }, { nextstep_wctomb, NULL })
637 /* Regional 8-bit encodings used for a single language */
639 DEFENCODING(( "ARMSCII-8",
641 armscii_8,
642 { armscii_8_mbtowc, NULL }, { armscii_8_wctomb, NULL })
644 DEFENCODING(( "GEORGIAN-ACADEMY",
646 georgian_academy,
647 { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL })
649 DEFENCODING(( "GEORGIAN-PS",
651 georgian_ps,
652 { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL })
654 DEFENCODING(( "KOI8-T",
656 koi8_t,
657 { koi8_t_mbtowc, NULL }, { koi8_t_wctomb, NULL })
659 DEFENCODING(( "PT154", /* IANA, glibc */
660 "PTCP154", /* IANA */
661 "CP154", /* IANA */
662 "CYRILLIC-ASIAN", /* IANA */
663 "csPTCP154", /* IANA */
665 pt154,
666 { pt154_mbtowc, NULL }, { pt154_wctomb, NULL })
668 DEFENCODING(( "RK1048", /* IANA, glibc */
669 "STRK1048-2002", /* IANA */
670 "KZ-1048", /* IANA */
671 "csKZ1048", /* IANA */
673 rk1048,
674 { rk1048_mbtowc, NULL }, { rk1048_wctomb, NULL })
676 DEFENCODING(( "MULELAO-1",
678 mulelao,
679 { mulelao_mbtowc, NULL }, { mulelao_wctomb, NULL })
681 DEFENCODING(( "CP1133",
682 "IBM-CP1133",
684 cp1133,
685 { cp1133_mbtowc, NULL }, { cp1133_wctomb, NULL })
687 DEFENCODING(( "TIS-620", /* IANA */
688 "TIS620", /* glibc, HP-UX */
689 "TIS620-0", /* glibc */
690 "TIS620.2529-1", /* glibc */
691 "TIS620.2533-0", /* glibc */
692 "TIS620.2533-1",
693 "ISO-IR-166", /* glibc */
695 tis620,
696 { tis620_mbtowc, NULL }, { tis620_wctomb, NULL })
697 #ifdef USE_OSF1_ALIASES
698 DEFALIAS( "TACTIS", /* OSF/1 */
699 tis620)
700 #endif
701 #ifdef USE_SOLARIS_ALIASES
702 DEFALIAS( "TIS620.2533", /* Solaris */
703 tis620)
704 #endif
706 DEFENCODING(( "CP874", /* JDK 1.1 */
707 "WINDOWS-874",
709 cp874,
710 { cp874_mbtowc, NULL }, { cp874_wctomb, NULL })
712 DEFENCODING(( "VISCII", /* IANA, RFC 1456 */
713 "VISCII1.1-1",
714 "csVISCII", /* IANA */
716 viscii,
717 { viscii_mbtowc, NULL }, { viscii_wctomb, NULL })
719 DEFENCODING(( "TCVN",
720 "TCVN-5712",
721 "TCVN5712-1",
722 "TCVN5712-1:1993",
724 tcvn,
725 { tcvn_mbtowc, tcvn_flushwc }, { tcvn_wctomb, NULL })
727 /* CJK character sets (not documented) */
729 DEFENCODING(( "JIS_C6220-1969-RO", /* IANA */
730 "ISO646-JP", /* IANA */
731 "ISO-IR-14", /* IANA */
732 "JP", /* IANA */
733 "csISO14JISC6220ro", /* IANA */
735 iso646_jp,
736 { iso646_jp_mbtowc, NULL }, { iso646_jp_wctomb, NULL })
738 DEFENCODING(( "JIS_X0201", /* IANA */
739 "JISX0201-1976",
740 "X0201", /* IANA */
741 "csHalfWidthKatakana", /* IANA */
742 /*"JISX0201.1976-0", X11R6.4 */
743 /*"JIS0201", JDK 1.1 */
745 jisx0201,
746 { jisx0201_mbtowc, NULL }, { jisx0201_wctomb, NULL })
748 DEFENCODING(( "JIS_X0208",
749 "JIS_X0208-1983", /* IANA */
750 "JIS_X0208-1990",
751 "JIS0208",
752 "X0208", /* IANA */
753 "ISO-IR-87", /* IANA */
754 "JIS_C6226-1983", /* IANA */
755 "csISO87JISX0208", /* IANA */
756 /*"JISX0208.1983-0", X11R6.4 */
757 /*"JISX0208.1990-0", X11R6.4 */
758 /*"JIS0208", JDK 1.1 */
760 jisx0208,
761 { jisx0208_mbtowc, NULL }, { jisx0208_wctomb, NULL })
763 DEFENCODING(( "JIS_X0212",
764 "JIS_X0212.1990-0",
765 "JIS_X0212-1990", /* IANA */
766 "X0212", /* IANA */
767 "ISO-IR-159", /* IANA */
768 "csISO159JISX02121990", /* IANA */
769 /*"JISX0212.1990-0", X11R6.4 */
770 /*"JIS0212", JDK 1.1 */
772 jisx0212,
773 { jisx0212_mbtowc, NULL }, { jisx0212_wctomb, NULL })
775 DEFENCODING(( "GB_1988-80", /* IANA */
776 "ISO646-CN", /* IANA */
777 "ISO-IR-57", /* IANA */
778 "CN", /* IANA */
779 "csISO57GB1988", /* IANA */
781 iso646_cn,
782 { iso646_cn_mbtowc, NULL }, { iso646_cn_wctomb, NULL })
784 DEFENCODING(( "GB_2312-80", /* IANA */
785 "ISO-IR-58", /* IANA */
786 "csISO58GB231280", /* IANA */
787 "CHINESE", /* IANA */
788 /*"GB2312.1980-0", X11R6.4 */
790 gb2312,
791 { gb2312_mbtowc, NULL }, { gb2312_wctomb, NULL })
793 DEFENCODING(( "ISO-IR-165",
794 "CN-GB-ISOIR165", /* RFC 1922 */
796 isoir165,
797 { isoir165_mbtowc, NULL }, { isoir165_wctomb, NULL })
799 DEFENCODING(( "KSC_5601", /* IANA */
800 "KS_C_5601-1987", /* IANA */
801 "KS_C_5601-1989", /* IANA */
802 "ISO-IR-149", /* IANA */
803 "csKSC56011987", /* IANA */
804 "KOREAN", /* IANA */
805 /*"KSC5601.1987-0", X11R6.4 */
806 /*"KSX1001:1992", Ken Lunde */
808 ksc5601,
809 { ksc5601_mbtowc, NULL }, { ksc5601_wctomb, NULL })
811 /* CJK encodings */
813 DEFENCODING(( "EUC-JP", /* IANA */
814 "EUCJP", /* glibc, HP-UX, IRIX, OSF/1, Solaris */
815 "Extended_UNIX_Code_Packed_Format_for_Japanese", /* IANA */
816 "csEUCPkdFmtJapanese", /* IANA */
817 /*"EUC_JP", JDK 1.1 */
818 /*"CP51932", Windows */
820 euc_jp,
821 { euc_jp_mbtowc, NULL }, { euc_jp_wctomb, NULL })
822 #ifdef USE_AIX_ALIASES
823 DEFALIAS( "IBM-EUCJP", /* AIX */
824 euc_jp)
825 #endif
826 #ifdef USE_OSF1_ALIASES
827 DEFALIAS( "SDECKANJI", /* OSF/1 */
828 euc_jp)
829 #endif
831 DEFENCODING(( "SHIFT_JIS", /* IANA */
832 "SHIFT-JIS", /* glibc */
833 "SJIS", /* JDK 1.1, HP-UX, OSF/1 */
834 "MS_KANJI", /* IANA */
835 "csShiftJIS", /* IANA */
837 sjis,
838 { sjis_mbtowc, NULL }, { sjis_wctomb, NULL })
839 #ifdef USE_SOLARIS_ALIASES
840 DEFALIAS( "PCK", /* Solaris */
841 sjis)
842 #endif
844 DEFENCODING(( "CP932", /* glibc */
846 cp932,
847 { cp932_mbtowc, NULL }, { cp932_wctomb, NULL })
848 #ifdef USE_AIX_ALIASES
849 DEFALIAS( "IBM-932", /* AIX */
850 cp932)
851 #endif
853 DEFENCODING(( "ISO-2022-JP", /* IANA, RFC 1468 */
854 "csISO2022JP", /* IANA */
855 /*"ISO2022JP", JDK 1.1 */
857 iso2022_jp,
858 { iso2022_jp_mbtowc, NULL }, { iso2022_jp_wctomb, iso2022_jp_reset })
860 DEFENCODING(( "ISO-2022-JP-1", /* RFC 2237 */
862 iso2022_jp1,
863 { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset })
865 DEFENCODING(( "ISO-2022-JP-2", /* IANA, RFC 1554 */
866 "csISO2022JP2", /* IANA */
868 iso2022_jp2,
869 { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset })
871 DEFENCODING(( "ISO-2022-JP-MS",
872 "CP50221",
873 /*"ISO-2022-JP-ESC", Windows */
875 iso2022_jpms,
876 { iso2022_jpms_mbtowc, NULL }, { iso2022_jpms_wctomb, iso2022_jpms_reset })
878 DEFENCODING(( "EUC-CN", /* glibc */
879 "EUCCN", /* glibc, IRIX */
880 "GB2312", /* IANA */
881 "CN-GB", /* RFC 1922 */
882 "csGB2312", /* IANA */
883 /*"EUC_CN", JDK 1.1 */
884 /*"CP51936", Windows */
886 euc_cn,
887 { euc_cn_mbtowc, NULL }, { euc_cn_wctomb, NULL })
888 #ifdef USE_AIX_ALIASES
889 DEFALIAS( "IBM-EUCCN", /* AIX */
890 euc_cn)
891 #endif
892 #ifdef USE_HPUX_ALIASES
893 DEFALIAS( "HP15CN", /* HP-UX */
894 euc_cn)
895 #endif
896 #ifdef USE_OSF1_ALIASES
897 DEFALIAS( "DECHANZI", /* OSF/1 */
898 euc_cn)
899 #endif
901 DEFENCODING(( "GBK", /* IANA, JDK 1.1 */
903 ces_gbk,
904 { ces_gbk_mbtowc, NULL }, { ces_gbk_wctomb, NULL })
906 DEFENCODING(( "CP936", /* IANA */
907 "MS936", /* IANA */
908 "WINDOWS-936", /* IANA */
910 cp936,
911 { cp936_mbtowc, NULL }, { cp936_wctomb, NULL })
913 DEFENCODING(( "GB18030", /* IANA, glibc */
914 /*"CP54936", Windows */
915 "GB18030:2005",
917 gb18030_2005,
918 { gb18030_2005_mbtowc, NULL },{ gb18030_2005_wctomb, NULL })
920 DEFENCODING(( "GB18030:2022",
922 gb18030_2022,
923 { gb18030_2022_mbtowc, NULL },{ gb18030_2022_wctomb, NULL })
925 DEFENCODING(( "ISO-2022-CN", /* IANA, RFC 1922 */
926 "csISO2022CN",
927 /*"ISO2022CN", JDK 1.1 */
929 iso2022_cn,
930 { iso2022_cn_mbtowc, NULL }, { iso2022_cn_wctomb, iso2022_cn_reset })
932 DEFENCODING(( "ISO-2022-CN-EXT", /* IANA, RFC 1922 */
934 iso2022_cn_ext,
935 { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset })
937 DEFENCODING(( "HZ", /* RFC 1843 */
938 "HZ-GB-2312", /* IANA, RFC 1842 */
939 /*"CP52936", Windows */
942 { hz_mbtowc, NULL }, { hz_wctomb, hz_reset })
944 DEFENCODING(( "EUC-TW", /* glibc */
945 "EUCTW", /* glibc, HP-UX, IRIX, OSF/1 */
946 "csEUCTW",
947 /*"EUC_TW", JDK 1.1 */
948 /*"CP51950", Windows */
950 euc_tw,
951 { euc_tw_mbtowc, NULL }, { euc_tw_wctomb, NULL })
952 #ifdef USE_AIX_ALIASES
953 DEFALIAS( "IBM-EUCTW", /* AIX */
954 euc_tw)
955 #endif
956 #ifdef USE_SOLARIS_ALIASES
957 DEFALIAS( "CNS11643", /* Solaris */
958 euc_tw)
959 #endif
961 DEFENCODING(( "BIG5", /* IANA, JDK 1.1 */
962 "BIG-5", /* glibc */
963 "BIG-FIVE", /* glibc */
964 "BIGFIVE", /* glibc */
965 "CN-BIG5", /* RFC 1922 */
966 "csBig5", /* IANA */
968 ces_big5,
969 { ces_big5_mbtowc, NULL }, { ces_big5_wctomb, NULL })
971 DEFENCODING(( "CP950", /* JDK 1.1 */
973 cp950,
974 { cp950_mbtowc, NULL }, { cp950_wctomb, NULL })
976 DEFENCODING(( "BIG5-HKSCS:1999",
978 big5hkscs1999,
979 { big5hkscs1999_mbtowc, big5hkscs1999_flushwc }, { big5hkscs1999_wctomb, big5hkscs1999_reset })
981 DEFENCODING(( "BIG5-HKSCS:2001",
983 big5hkscs2001,
984 { big5hkscs2001_mbtowc, big5hkscs2001_flushwc }, { big5hkscs2001_wctomb, big5hkscs2001_reset })
986 DEFENCODING(( "BIG5-HKSCS:2004",
988 big5hkscs2004,
989 { big5hkscs2004_mbtowc, big5hkscs2004_flushwc }, { big5hkscs2004_wctomb, big5hkscs2004_reset })
991 DEFENCODING(( "BIG5-HKSCS", /* IANA */
992 "BIG5HKSCS", /* glibc */
993 "BIG5-HKSCS:2008",
995 big5hkscs2008,
996 { big5hkscs2008_mbtowc, big5hkscs2008_flushwc }, { big5hkscs2008_wctomb, big5hkscs2008_reset })
998 DEFENCODING(( "EUC-KR", /* IANA, RFC 1557 */
999 "EUCKR", /* glibc, HP-UX, IRIX, OSF/1 */
1000 "csEUCKR", /* IANA */
1001 /*"EUC_KR", JDK 1.1 */
1002 /*"CP51949", Windows */
1004 euc_kr,
1005 { euc_kr_mbtowc, NULL }, { euc_kr_wctomb, NULL })
1006 #ifdef USE_AIX_ALIASES
1007 DEFALIAS( "IBM-EUCKR", /* AIX */
1008 euc_kr)
1009 #endif
1010 #ifdef USE_OSF1_ALIASES
1011 DEFALIAS( "DECKOREAN", /* OSF/1 */
1012 euc_kr)
1013 #endif
1014 #ifdef USE_SOLARIS_ALIASES
1015 DEFALIAS( "5601", /* Solaris */
1016 euc_kr)
1017 #endif
1019 DEFENCODING(( "CP949", /* JDK 1.1 */
1020 "UHC", /* glibc */
1022 cp949,
1023 { cp949_mbtowc, NULL }, { cp949_wctomb, NULL })
1024 #ifdef USE_OSF1_ALIASES
1025 DEFALIAS( "KSC5601", /* OSF/1 */
1026 cp949)
1027 #endif
1029 DEFENCODING(( "JOHAB", /* glibc */
1030 "CP1361", /* glibc */
1032 johab,
1033 { johab_mbtowc, NULL }, { johab_wctomb, NULL })
1034 #ifdef USE_SOLARIS_ALIASES
1035 DEFALIAS( "KO_KR.JOHAP92", /* Solaris */
1036 johab)
1037 #endif
1039 DEFENCODING(( "ISO-2022-KR", /* IANA, RFC 1557 */
1040 "csISO2022KR", /* IANA */
1041 /*"ISO2022KR", JDK 1.1 */
1042 /*"CP50225", Windows */
1044 iso2022_kr,
1045 { iso2022_kr_mbtowc, NULL }, { iso2022_kr_wctomb, iso2022_kr_reset })