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 Library General Public
6 License as published by the Free Software Foundation; either version 2
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 Library General Public License for more details.
14 You should have received a copy of the GNU Library General Public
15 License along with the GNU LIBICONV Library; see the file COPYING.LIB.
16 If not, see <http://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, ..., ),
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 */
49 /*"ISO646.1991-IRV", X11R6.4 */
52 { ascii_mbtowc, NULL }, { ascii_wctomb, NULL })
53 #ifdef USE_SOLARIS_ALIASES
54 DEFALIAS( "646", /* Solaris */
58 /* General multi-byte encodings */
60 DEFENCODING(( "UTF-8", /* IANA, RFC 2279 */
62 /*"CP65001", Windows */
65 { utf8_mbtowc, NULL }, { utf8_wctomb, NULL })
66 #ifdef USE_HPUX_ALIASES
67 DEFALIAS( "UTF8", /* HP-UX */
71 DEFENCODING(( "UCS-2", /* glibc */
72 "ISO-10646-UCS-2", /* IANA */
73 "csUnicode", /* IANA */
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 */
85 { ucs2be_mbtowc, NULL }, { ucs2be_wctomb, NULL })
87 DEFENCODING(( "UCS-2LE", /* glibc */
88 "UNICODELITTLE", /* glibc */
89 /*"CP1200", Windows */
92 { ucs2le_mbtowc, NULL }, { ucs2le_wctomb, NULL })
94 DEFENCODING(( "UCS-4", /* glibc */
95 "ISO-10646-UCS-4", /* IANA */
99 { ucs4_mbtowc, NULL }, { ucs4_wctomb, NULL })
101 DEFENCODING(( "UCS-4BE", /* glibc */
102 /*"CP12001", Windows */
105 { ucs4be_mbtowc, NULL }, { ucs4be_wctomb, NULL })
107 DEFENCODING(( "UCS-4LE", /* glibc */
108 /*"CP12000", Windows */
111 { ucs4le_mbtowc, NULL }, { ucs4le_wctomb, NULL })
113 DEFENCODING(( "UTF-16", /* IANA, RFC 2781 */
116 { utf16_mbtowc, NULL }, { utf16_wctomb, NULL })
118 DEFENCODING(( "UTF-16BE", /* IANA, RFC 2781 */
121 { utf16be_mbtowc, NULL }, { utf16be_wctomb, NULL })
123 DEFENCODING(( "UTF-16LE", /* IANA, RFC 2781 */
126 { utf16le_mbtowc, NULL }, { utf16le_wctomb, NULL })
128 DEFENCODING(( "UTF-32", /* IANA, Unicode 3.1 */
131 { utf32_mbtowc, NULL }, { utf32_wctomb, NULL })
133 DEFENCODING(( "UTF-32BE", /* IANA, Unicode 3.1 */
136 { utf32be_mbtowc, NULL }, { utf32be_wctomb, NULL })
138 DEFENCODING(( "UTF-32LE", /* IANA, Unicode 3.1 */
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 */
149 { utf7_mbtowc, NULL }, { utf7_wctomb, utf7_reset })
151 DEFENCODING(( "UCS-2-INTERNAL", /* libiconv */
154 { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL })
156 DEFENCODING(( "UCS-2-SWAPPED", /* libiconv */
159 { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL })
161 DEFENCODING(( "UCS-4-INTERNAL", /* libiconv */
164 { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL })
166 DEFENCODING(( "UCS-4-SWAPPED", /* libiconv */
169 { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL })
174 { c99_mbtowc, NULL }, { c99_wctomb, NULL })
176 DEFENCODING(( "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 */
191 "csISOLatin1", /* IANA */
192 "ISO8859-1", /* X11R6.4, glibc, FreeBSD, AIX, IRIX, OSF/1, Solaris */
193 /*"ISO8859_1", JDK 1.1 */
194 /*"CP28591", Windows */
197 { iso8859_1_mbtowc, NULL }, { iso8859_1_wctomb, NULL })
198 #ifdef USE_HPUX_ALIASES
199 DEFALIAS( "ISO88591", /* HP-UX */
203 DEFENCODING(( "ISO-8859-2", /* IANA */
204 "ISO_8859-2", /* IANA */
205 "ISO_8859-2:1987", /* IANA */
206 "ISO-IR-101", /* 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 */
215 { iso8859_2_mbtowc, NULL }, { iso8859_2_wctomb, NULL })
216 #ifdef USE_HPUX_ALIASES
217 DEFALIAS( "ISO88592", /* HP-UX */
221 DEFENCODING(( "ISO-8859-3", /* IANA */
222 "ISO_8859-3", /* IANA */
223 "ISO_8859-3:1988", /* IANA */
224 "ISO-IR-109", /* IANA */
227 "csISOLatin3", /* IANA */
228 "ISO8859-3", /* X11R6.4, glibc, FreeBSD, Solaris */
229 /*"ISO8859_3", JDK 1.1 */
230 /*"CP28593", Windows */
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 */
241 "csISOLatin4", /* IANA */
242 "ISO8859-4", /* X11R6.4, glibc, FreeBSD, OSF/1, Solaris */
243 /*"ISO8859_4", JDK 1.1 */
244 /*"CP28594", Windows */
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 */
260 { iso8859_5_mbtowc, NULL }, { iso8859_5_wctomb, NULL })
261 #ifdef USE_HPUX_ALIASES
262 DEFALIAS( "ISO88595", /* HP-UX */
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 */
273 "csISOLatinArabic", /* IANA */
274 "ISO8859-6", /* X11R6.4, glibc, FreeBSD, AIX, Solaris */
275 /*"ISO8859_6", JDK 1.1 */
276 /*"CP28596", Windows */
279 { iso8859_6_mbtowc, NULL }, { iso8859_6_wctomb, NULL })
280 #ifdef USE_HPUX_ALIASES
281 DEFALIAS( "ISO88596", /* HP-UX */
285 DEFENCODING(( "ISO-8859-7", /* IANA, RFC 1947 */
286 "ISO_8859-7", /* IANA */
287 "ISO_8859-7:1987", /* IANA */
289 "ISO-IR-126", /* IANA */
290 "ECMA-118", /* IANA */
291 "ELOT_928", /* 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 */
300 { iso8859_7_mbtowc, NULL }, { iso8859_7_wctomb, NULL })
301 #ifdef USE_HPUX_ALIASES
302 DEFALIAS( "ISO88597", /* HP-UX */
306 DEFENCODING(( "ISO-8859-8", /* IANA */
307 "ISO_8859-8", /* IANA */
308 "ISO_8859-8:1988", /* IANA */
309 "ISO-IR-138", /* 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 */
318 { iso8859_8_mbtowc, NULL }, { iso8859_8_wctomb, NULL })
319 #ifdef USE_HPUX_ALIASES
320 DEFALIAS( "ISO88598", /* HP-UX */
324 DEFENCODING(( "ISO-8859-9", /* IANA */
325 "ISO_8859-9", /* IANA */
326 "ISO_8859-9:1989", /* IANA */
327 "ISO-IR-148", /* 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 */
336 { iso8859_9_mbtowc, NULL }, { iso8859_9_wctomb, NULL })
337 #ifdef USE_HPUX_ALIASES
338 DEFALIAS( "ISO88599", /* HP-UX */
342 DEFENCODING(( "ISO-8859-10", /* IANA */
344 "ISO_8859-10:1992", /* IANA */
345 "ISO-IR-157", /* IANA */
348 "csISOLatin6", /* IANA */
349 "ISO8859-10", /* X11R6.4, glibc, FreeBSD */
352 { iso8859_10_mbtowc, NULL }, { iso8859_10_wctomb, NULL })
354 DEFENCODING(( "ISO-8859-11", /* glibc */
356 "ISO8859-11", /* X11R6.7, glibc */
359 { iso8859_11_mbtowc, NULL }, { iso8859_11_wctomb, NULL })
361 DEFENCODING(( "ISO-8859-13", /* IANA, glibc */
363 "ISO-IR-179", /* glibc */
364 "LATIN7", /* glibc */
366 "ISO8859-13", /* glibc, FreeBSD */
367 /*"CP28603", Windows */
370 { iso8859_13_mbtowc, NULL }, { iso8859_13_wctomb, NULL })
371 #ifdef USE_AIX_ALIASES
372 DEFALIAS( "IBM-921", /* AIX */
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 */
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 */
392 "LATIN-9", /* IANA */
393 "ISO8859-15", /* glibc, FreeBSD, AIX, OSF/1, Solaris */
394 /*"CP28605", Windows */
397 { iso8859_15_mbtowc, NULL }, { iso8859_15_wctomb, NULL })
398 #ifdef USE_HPUX_ALIASES
399 DEFALIAS( "ISO885915", /* HP-UX */
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 */
409 "ISO8859-16", /* glibc, FreeBSD */
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 */
419 { koi8_r_mbtowc, NULL }, { koi8_r_wctomb, NULL })
421 DEFENCODING(( "KOI8-U", /* IANA, RFC 2319 */
424 { koi8_u_mbtowc, NULL }, { koi8_u_wctomb, NULL })
426 DEFENCODING(( "KOI8-RU",
427 /*"CP21866", Windows */
430 { koi8_ru_mbtowc, NULL }, { koi8_ru_wctomb, NULL })
432 /* Windows 8-bit encodings */
434 DEFENCODING(( "CP1250", /* JDK 1.1 */
435 "WINDOWS-1250", /* IANA */
439 { cp1250_mbtowc, NULL }, { cp1250_wctomb, NULL })
441 DEFENCODING(( "CP1251", /* JDK 1.1 */
442 "WINDOWS-1251", /* IANA */
446 { cp1251_mbtowc, NULL }, { cp1251_wctomb, NULL })
447 #ifdef USE_SOLARIS_ALIASES
448 DEFALIAS( "ANSI-1251", /* Solaris */
452 DEFENCODING(( "CP1252", /* JDK 1.1 */
453 "WINDOWS-1252", /* IANA */
457 { cp1252_mbtowc, NULL }, { cp1252_wctomb, NULL })
458 #ifdef USE_AIX_ALIASES
459 DEFALIAS( "IBM-1252", /* AIX */
463 DEFENCODING(( "CP1253", /* JDK 1.1 */
464 "WINDOWS-1253", /* IANA */
468 { cp1253_mbtowc, NULL }, { cp1253_wctomb, NULL })
470 DEFENCODING(( "CP1254", /* JDK 1.1 */
471 "WINDOWS-1254", /* IANA */
475 { cp1254_mbtowc, NULL }, { cp1254_wctomb, NULL })
477 DEFENCODING(( "CP1255", /* JDK 1.1 */
478 "WINDOWS-1255", /* IANA */
482 { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL })
484 DEFENCODING(( "CP1256", /* JDK 1.1 */
485 "WINDOWS-1256", /* IANA */
489 { cp1256_mbtowc, NULL }, { cp1256_wctomb, NULL })
491 DEFENCODING(( "CP1257", /* JDK 1.1 */
492 "WINDOWS-1257", /* IANA */
496 { cp1257_mbtowc, NULL }, { cp1257_wctomb, NULL })
498 DEFENCODING(( "CP1258", /* JDK 1.1 */
499 "WINDOWS-1258", /* IANA */
502 { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL })
504 /* DOS 8-bit encodings */
506 DEFENCODING(( "CP850", /* IANA, JDK 1.1 */
509 "csPC850Multilingual", /* IANA */
512 { cp850_mbtowc, NULL }, { cp850_wctomb, NULL })
513 #ifdef USE_AIX_ALIASES
514 DEFALIAS( "IBM-850", /* AIX */
518 DEFENCODING(( "CP862", /* IANA, JDK 1.1 */
521 "csPC862LatinHebrew", /* IANA */
524 { cp862_mbtowc, NULL }, { cp862_wctomb, NULL })
526 DEFENCODING(( "CP866", /* IANA, JDK 1.1 */
529 "csIBM866", /* IANA */
532 { cp866_mbtowc, NULL }, { cp866_wctomb, NULL })
534 DEFENCODING(( "CP1131", /* FreeBSD, MacOS X */
537 { cp1131_mbtowc, NULL }, { cp1131_wctomb, NULL })
538 #ifdef USE_AIX_ALIASES
539 DEFALIAS( "IBM-1131", /* AIX */
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 */
550 "csMacintosh", /* IANA */
551 /*"CP10000", Windows */
554 { mac_roman_mbtowc, NULL }, { mac_roman_wctomb, NULL })
556 DEFENCODING(( "MacCentralEurope", /* JDK 1.1 */
557 /*"CP10029", Windows */
560 { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL })
562 DEFENCODING(( "MacIceland", /* JDK 1.1 */
563 /*"CP10079", Windows */
566 { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL })
568 DEFENCODING(( "MacCroatian", /* JDK 1.1 */
569 /*"CP10082", Windows */
572 { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL })
574 DEFENCODING(( "MacRomania", /* JDK 1.1 */
575 /*"CP10010", Windows */
578 { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL })
580 DEFENCODING(( "MacCyrillic", /* JDK 1.1 */
581 /*"CP10007", Windows */
584 { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL })
586 DEFENCODING(( "MacUkraine", /* JDK 1.1 */
587 /*"CP10017", Windows */
590 { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL })
592 DEFENCODING(( "MacGreek", /* JDK 1.1 */
593 /*"CP10006", Windows */
596 { mac_greek_mbtowc, NULL }, { mac_greek_wctomb, NULL })
598 DEFENCODING(( "MacTurkish", /* JDK 1.1 */
599 /*"CP10081", Windows */
602 { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL })
604 DEFENCODING(( "MacHebrew", /* JDK 1.1 */
605 /*"CP10005", Windows */
608 { mac_hebrew_mbtowc, NULL }, { mac_hebrew_wctomb, NULL })
610 DEFENCODING(( "MacArabic", /* JDK 1.1 */
611 /*"CP10004", Windows */
614 { mac_arabic_mbtowc, NULL }, { mac_arabic_wctomb, NULL })
616 DEFENCODING(( "MacThai", /* JDK 1.1 */
617 /*"CP10021", Windows */
620 { mac_thai_mbtowc, NULL }, { mac_thai_wctomb, NULL })
622 /* Other platform specific 8-bit encodings */
624 DEFENCODING(( "HP-ROMAN8", /* IANA, X11R6.4 */
627 "csHPRoman8", /* IANA */
630 { hp_roman8_mbtowc, NULL }, { hp_roman8_wctomb, NULL })
632 DEFENCODING(( "NEXTSTEP",
635 { nextstep_mbtowc, NULL }, { nextstep_wctomb, NULL })
637 /* Regional 8-bit encodings used for a single language */
639 DEFENCODING(( "ARMSCII-8",
642 { armscii_8_mbtowc, NULL }, { armscii_8_wctomb, NULL })
644 DEFENCODING(( "GEORGIAN-ACADEMY",
647 { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL })
649 DEFENCODING(( "GEORGIAN-PS",
652 { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL })
654 DEFENCODING(( "KOI8-T",
657 { koi8_t_mbtowc, NULL }, { koi8_t_wctomb, NULL })
659 DEFENCODING(( "PT154", /* IANA, glibc */
660 "PTCP154", /* IANA */
662 "CYRILLIC-ASIAN", /* IANA */
663 "csPTCP154", /* IANA */
666 { pt154_mbtowc, NULL }, { pt154_wctomb, NULL })
668 DEFENCODING(( "RK1048", /* IANA, glibc */
669 "STRK1048-2002", /* IANA */
670 "KZ-1048", /* IANA */
671 "csKZ1048", /* IANA */
674 { rk1048_mbtowc, NULL }, { rk1048_wctomb, NULL })
676 DEFENCODING(( "MULELAO-1",
679 { mulelao_mbtowc, NULL }, { mulelao_wctomb, NULL })
681 DEFENCODING(( "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 */
693 "ISO-IR-166", /* glibc */
696 { tis620_mbtowc, NULL }, { tis620_wctomb, NULL })
697 #ifdef USE_OSF1_ALIASES
698 DEFALIAS( "TACTIS", /* OSF/1 */
701 #ifdef USE_SOLARIS_ALIASES
702 DEFALIAS( "TIS620.2533", /* Solaris */
706 DEFENCODING(( "CP874", /* JDK 1.1 */
710 { cp874_mbtowc, NULL }, { cp874_wctomb, NULL })
712 DEFENCODING(( "VISCII", /* IANA, RFC 1456 */
714 "csVISCII", /* IANA */
717 { viscii_mbtowc, NULL }, { viscii_wctomb, NULL })
719 DEFENCODING(( "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 */
733 "csISO14JISC6220ro", /* IANA */
736 { iso646_jp_mbtowc, NULL }, { iso646_jp_wctomb, NULL })
738 DEFENCODING(( "JIS_X0201", /* IANA */
741 "csHalfWidthKatakana", /* IANA */
742 /*"JISX0201.1976-0", X11R6.4 */
743 /*"JIS0201", JDK 1.1 */
746 { jisx0201_mbtowc, NULL }, { jisx0201_wctomb, NULL })
748 DEFENCODING(( "JIS_X0208",
749 "JIS_X0208-1983", /* 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 */
761 { jisx0208_mbtowc, NULL }, { jisx0208_wctomb, NULL })
763 DEFENCODING(( "JIS_X0212",
765 "JIS_X0212-1990", /* IANA */
767 "ISO-IR-159", /* IANA */
768 "csISO159JISX02121990", /* IANA */
769 /*"JISX0212.1990-0", X11R6.4 */
770 /*"JIS0212", JDK 1.1 */
773 { jisx0212_mbtowc, NULL }, { jisx0212_wctomb, NULL })
775 DEFENCODING(( "GB_1988-80", /* IANA */
776 "ISO646-CN", /* IANA */
777 "ISO-IR-57", /* IANA */
779 "csISO57GB1988", /* IANA */
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 */
791 { gb2312_mbtowc, NULL }, { gb2312_wctomb, NULL })
793 DEFENCODING(( "ISO-IR-165",
794 "CN-GB-ISOIR165", /* RFC 1922 */
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 */
805 /*"KSC5601.1987-0", X11R6.4 */
806 /*"KSX1001:1992", Ken Lunde */
809 { ksc5601_mbtowc, NULL }, { ksc5601_wctomb, NULL })
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 */
821 { euc_jp_mbtowc, NULL }, { euc_jp_wctomb, NULL })
822 #ifdef USE_AIX_ALIASES
823 DEFALIAS( "IBM-EUCJP", /* AIX */
826 #ifdef USE_OSF1_ALIASES
827 DEFALIAS( "SDECKANJI", /* OSF/1 */
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 */
838 { sjis_mbtowc, NULL }, { sjis_wctomb, NULL })
839 #ifdef USE_SOLARIS_ALIASES
840 DEFALIAS( "PCK", /* Solaris */
844 DEFENCODING(( "CP932", /* glibc */
847 { cp932_mbtowc, NULL }, { cp932_wctomb, NULL })
848 #ifdef USE_AIX_ALIASES
849 DEFALIAS( "IBM-932", /* AIX */
853 DEFENCODING(( "ISO-2022-JP", /* IANA, RFC 1468 */
854 "csISO2022JP", /* IANA */
855 /*"ISO2022JP", JDK 1.1 */
858 { iso2022_jp_mbtowc, NULL }, { iso2022_jp_wctomb, iso2022_jp_reset })
860 DEFENCODING(( "ISO-2022-JP-1", /* RFC 2237 */
863 { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset })
865 DEFENCODING(( "ISO-2022-JP-2", /* IANA, RFC 1554 */
866 "csISO2022JP2", /* IANA */
869 { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset })
871 DEFENCODING(( "ISO-2022-JP-MS",
873 /*"ISO-2022-JP-ESC", Windows */
876 { iso2022_jpms_mbtowc, NULL }, { iso2022_jpms_wctomb, iso2022_jpms_reset })
878 DEFENCODING(( "EUC-CN", /* glibc */
879 "EUCCN", /* glibc, IRIX */
881 "CN-GB", /* RFC 1922 */
882 "csGB2312", /* IANA */
883 /*"EUC_CN", JDK 1.1 */
884 /*"CP51936", Windows */
887 { euc_cn_mbtowc, NULL }, { euc_cn_wctomb, NULL })
888 #ifdef USE_AIX_ALIASES
889 DEFALIAS( "IBM-EUCCN", /* AIX */
892 #ifdef USE_HPUX_ALIASES
893 DEFALIAS( "HP15CN", /* HP-UX */
896 #ifdef USE_OSF1_ALIASES
897 DEFALIAS( "DECHANZI", /* OSF/1 */
901 DEFENCODING(( "GBK", /* IANA, JDK 1.1 */
904 { ces_gbk_mbtowc, NULL }, { ces_gbk_wctomb, NULL })
906 DEFENCODING(( "CP936", /* IANA */
908 "WINDOWS-936", /* IANA */
911 { cp936_mbtowc, NULL }, { cp936_wctomb, NULL })
913 DEFENCODING(( "GB18030", /* IANA, glibc */
914 /*"CP54936", Windows */
917 { gb18030_mbtowc, NULL }, { gb18030_wctomb, NULL })
919 DEFENCODING(( "ISO-2022-CN", /* IANA, RFC 1922 */
921 /*"ISO2022CN", JDK 1.1 */
924 { iso2022_cn_mbtowc, NULL }, { iso2022_cn_wctomb, iso2022_cn_reset })
926 DEFENCODING(( "ISO-2022-CN-EXT", /* IANA, RFC 1922 */
929 { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset })
931 DEFENCODING(( "HZ", /* RFC 1843 */
932 "HZ-GB-2312", /* IANA, RFC 1842 */
933 /*"CP52936", Windows */
936 { hz_mbtowc, NULL }, { hz_wctomb, hz_reset })
938 DEFENCODING(( "EUC-TW", /* glibc */
939 "EUCTW", /* glibc, HP-UX, IRIX, OSF/1 */
941 /*"EUC_TW", JDK 1.1 */
942 /*"CP51950", Windows */
945 { euc_tw_mbtowc, NULL }, { euc_tw_wctomb, NULL })
946 #ifdef USE_AIX_ALIASES
947 DEFALIAS( "IBM-EUCTW", /* AIX */
950 #ifdef USE_SOLARIS_ALIASES
951 DEFALIAS( "CNS11643", /* Solaris */
955 DEFENCODING(( "BIG5", /* IANA, JDK 1.1 */
957 "BIG-FIVE", /* glibc */
958 "BIGFIVE", /* glibc */
959 "CN-BIG5", /* RFC 1922 */
963 { ces_big5_mbtowc, NULL }, { ces_big5_wctomb, NULL })
965 DEFENCODING(( "CP950", /* JDK 1.1 */
968 { cp950_mbtowc, NULL }, { cp950_wctomb, NULL })
970 DEFENCODING(( "BIG5-HKSCS:1999",
973 { big5hkscs1999_mbtowc, big5hkscs1999_flushwc }, { big5hkscs1999_wctomb, big5hkscs1999_reset })
975 DEFENCODING(( "BIG5-HKSCS:2001",
978 { big5hkscs2001_mbtowc, big5hkscs2001_flushwc }, { big5hkscs2001_wctomb, big5hkscs2001_reset })
980 DEFENCODING(( "BIG5-HKSCS:2004",
983 { big5hkscs2004_mbtowc, big5hkscs2004_flushwc }, { big5hkscs2004_wctomb, big5hkscs2004_reset })
985 DEFENCODING(( "BIG5-HKSCS", /* IANA */
986 "BIG5HKSCS", /* glibc */
990 { big5hkscs2008_mbtowc, big5hkscs2008_flushwc }, { big5hkscs2008_wctomb, big5hkscs2008_reset })
992 DEFENCODING(( "EUC-KR", /* IANA, RFC 1557 */
993 "EUCKR", /* glibc, HP-UX, IRIX, OSF/1 */
994 "csEUCKR", /* IANA */
995 /*"EUC_KR", JDK 1.1 */
996 /*"CP51949", Windows */
999 { euc_kr_mbtowc, NULL }, { euc_kr_wctomb, NULL })
1000 #ifdef USE_AIX_ALIASES
1001 DEFALIAS( "IBM-EUCKR", /* AIX */
1004 #ifdef USE_OSF1_ALIASES
1005 DEFALIAS( "DECKOREAN", /* OSF/1 */
1008 #ifdef USE_SOLARIS_ALIASES
1009 DEFALIAS( "5601", /* Solaris */
1013 DEFENCODING(( "CP949", /* JDK 1.1 */
1017 { cp949_mbtowc, NULL }, { cp949_wctomb, NULL })
1018 #ifdef USE_OSF1_ALIASES
1019 DEFALIAS( "KSC5601", /* OSF/1 */
1023 DEFENCODING(( "JOHAB", /* glibc */
1024 "CP1361", /* glibc */
1027 { johab_mbtowc, NULL }, { johab_wctomb, NULL })
1028 #ifdef USE_SOLARIS_ALIASES
1029 DEFALIAS( "KO_KR.JOHAP92", /* Solaris */
1033 DEFENCODING(( "ISO-2022-KR", /* IANA, RFC 1557 */
1034 "csISO2022KR", /* IANA */
1035 /*"ISO2022KR", JDK 1.1 */
1036 /*"CP50225", Windows */
1039 { iso2022_kr_mbtowc, NULL }, { iso2022_kr_wctomb, iso2022_kr_reset })