Initial revision
[TestXSLT.git] / libiconv / lib / encodings.def
1 /* Copyright (C) 1999-2002 Free Software Foundation, Inc.
2    This file is part of the GNU LIBICONV Library.
3
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.
8
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.
13
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, write to the Free Software Foundation, Inc., 59 Temple Place -
17    Suite 330, Boston, MA 02111-1307, USA.  */
18
19 /* The list of all system independent user-visible encodings. */
20
21 /* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined
22    in a file named "foobar.h" through the functions foobar_mbtowc and
23    foobar_wctomb (and possibly foobar_reset). */
24
25 /* DEFENCODING(( name, alias1, ..., ),
26                xxx,
27                { xxx_mbtowc, xxx_flushwc },
28                { xxx_wctomb, xxx_reset })
29    defines an encoding with the given name and aliases. (There is no
30    difference between a name and an alias. By convention, the name is chosen
31    as the preferred MIME name or the standard name.)
32    All names and aliases must be in ASCII. Case is not significant, but
33    for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is
34    preferred. For all names and aliases, note where it comes from.
35    xxx is the name as used in the C code (lowercase).
36  */
37
38
39 DEFENCODING(( "US-ASCII",               /* IANA */
40               "ASCII",                  /* IANA, JDK 1.1 */
41               "ISO646-US",              /* IANA */
42               "ISO_646.IRV:1991",       /* IANA */
43               "ISO-IR-6",               /* IANA */
44               "ANSI_X3.4-1968",         /* IANA */
45               "ANSI_X3.4-1986",         /* IANA */
46               "CP367",                  /* IANA */
47               "IBM367",                 /* IANA */
48               "US",                     /* IANA */
49               "csASCII",                /* IANA */
50             /*"ISO646.1991-IRV",           X11R6.4 */
51             ),
52             ascii,
53             { ascii_mbtowc, NULL },       { ascii_wctomb, NULL })
54
55 /* General multi-byte encodings */
56
57 DEFENCODING(( "UTF-8",                  /* IANA, RFC 2279 */
58             /*"UTF8",                      JDK 1.1 */
59             ),
60             utf8,
61             { utf8_mbtowc, NULL },        { utf8_wctomb, NULL })
62
63 DEFENCODING(( "UCS-2",                  /* glibc */
64               "ISO-10646-UCS-2",        /* IANA */
65               "csUnicode",              /* IANA */
66             ),
67             ucs2,
68             { ucs2_mbtowc, NULL },        { ucs2_wctomb, NULL })
69
70 DEFENCODING(( "UCS-2BE",                /* glibc */
71               "UNICODEBIG",             /* glibc */
72               "UNICODE-1-1",            /* IANA */
73               "csUnicode11",            /* IANA */
74             ),
75             ucs2be,
76             { ucs2be_mbtowc, NULL },      { ucs2be_wctomb, NULL })
77
78 DEFENCODING(( "UCS-2LE",                /* glibc */
79               "UNICODELITTLE",          /* glibc */
80             ),
81             ucs2le,
82             { ucs2le_mbtowc, NULL },      { ucs2le_wctomb, NULL })
83
84 DEFENCODING(( "UCS-4",                  /* glibc */
85               "ISO-10646-UCS-4",        /* IANA */
86               "csUCS4",                 /* IANA */
87             ),
88             ucs4,
89             { ucs4_mbtowc, NULL },        { ucs4_wctomb, NULL })
90
91 DEFENCODING(( "UCS-4BE",                /* glibc */
92             ),
93             ucs4be,
94             { ucs4be_mbtowc, NULL },      { ucs4be_wctomb, NULL })
95
96 DEFENCODING(( "UCS-4LE",                /* glibc */
97             ),
98             ucs4le,
99             { ucs4le_mbtowc, NULL },      { ucs4le_wctomb, NULL })
100
101 DEFENCODING(( "UTF-16",                 /* IANA, RFC 2781 */
102             ),
103             utf16,
104             { utf16_mbtowc, NULL },       { utf16_wctomb, NULL })
105
106 DEFENCODING(( "UTF-16BE",               /* IANA, RFC 2781 */
107             ),
108             utf16be,
109             { utf16be_mbtowc, NULL },     { utf16be_wctomb, NULL })
110
111 DEFENCODING(( "UTF-16LE",               /* IANA, RFC 2781 */
112             ),
113             utf16le,
114             { utf16le_mbtowc, NULL },     { utf16le_wctomb, NULL })
115
116 DEFENCODING(( "UTF-32",                 /* Unicode 3.1 */
117             ),
118             utf32,
119             { utf32_mbtowc, NULL },       { utf32_wctomb, NULL })
120
121 DEFENCODING(( "UTF-32BE",               /* Unicode 3.1 */
122             ),
123             utf32be,
124             { utf32be_mbtowc, NULL },     { utf32be_wctomb, NULL })
125
126 DEFENCODING(( "UTF-32LE",               /* Unicode 3.1 */
127             ),
128             utf32le,
129             { utf32le_mbtowc, NULL },     { utf32le_wctomb, NULL })
130
131 DEFENCODING(( "UTF-7",                  /* IANA, RFC 2152 */
132               "UNICODE-1-1-UTF-7",      /* IANA, RFC 1642 */
133               "csUnicode11UTF7",        /* IANA */
134             ),
135             utf7,
136             { utf7_mbtowc, NULL },        { utf7_wctomb, utf7_reset })
137
138 DEFENCODING(( "UCS-2-INTERNAL",         /* libiconv */
139             ),
140             ucs2internal,
141             { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL })
142
143 DEFENCODING(( "UCS-2-SWAPPED",          /* libiconv */
144             ),
145             ucs2swapped,
146             { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL })
147
148 DEFENCODING(( "UCS-4-INTERNAL",         /* libiconv */
149             ),
150             ucs4internal,
151             { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL })
152
153 DEFENCODING(( "UCS-4-SWAPPED",          /* libiconv */
154             ),
155             ucs4swapped,
156             { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL })
157
158 DEFENCODING(( "C99",
159             ),
160             c99,
161             { c99_mbtowc, NULL },         { c99_wctomb, NULL })
162
163 DEFENCODING(( "JAVA",
164             ),
165             java,
166             { java_mbtowc, NULL },        { java_wctomb, NULL })
167
168 /* Standard 8-bit encodings */
169
170 DEFENCODING(( "ISO-8859-1",             /* IANA */
171               "ISO_8859-1",             /* IANA */
172               "ISO_8859-1:1987",        /* IANA */
173               "ISO-IR-100",             /* IANA */
174               "CP819",                  /* IANA */
175               "IBM819",                 /* IANA */
176               "LATIN1",                 /* IANA */
177               "L1",                     /* IANA */
178               "csISOLatin1",            /* IANA */
179             /*"ISO8859-1",                 X11R6.4, glibc */
180             /*"ISO8859_1",                 JDK 1.1 */
181             ),
182             iso8859_1,
183             { iso8859_1_mbtowc, NULL },   { iso8859_1_wctomb, NULL })
184
185 DEFENCODING(( "ISO-8859-2",             /* IANA */
186               "ISO_8859-2",             /* IANA */
187               "ISO_8859-2:1987",        /* IANA */
188               "ISO-IR-101",             /* IANA */
189               "LATIN2",                 /* IANA */
190               "L2",                     /* IANA */
191               "csISOLatin2",            /* IANA */
192             /*"ISO8859-2",                 X11R6.4, glibc */
193             /*"ISO8859_2",                 JDK 1.1 */
194             ),
195             iso8859_2,
196             { iso8859_2_mbtowc, NULL },   { iso8859_2_wctomb, NULL })
197
198 DEFENCODING(( "ISO-8859-3",             /* IANA */
199               "ISO_8859-3",             /* IANA */
200               "ISO_8859-3:1988",        /* IANA */
201               "ISO-IR-109",             /* IANA */
202               "LATIN3",                 /* IANA */
203               "L3",                     /* IANA */
204               "csISOLatin3",            /* IANA */
205             /*"ISO8859-3",                 X11R6.4, glibc */
206             /*"ISO8859_3",                 JDK 1.1 */
207             ),
208             iso8859_3,
209             { iso8859_3_mbtowc, NULL },   { iso8859_3_wctomb, NULL })
210
211 DEFENCODING(( "ISO-8859-4",             /* IANA */
212               "ISO_8859-4",             /* IANA */
213               "ISO_8859-4:1988",        /* IANA */
214               "ISO-IR-110",             /* IANA */
215               "LATIN4",                 /* IANA */
216               "L4",                     /* IANA */
217               "csISOLatin4",            /* IANA */
218             /*"ISO8859-4",                 X11R6.4, glibc */
219             /*"ISO8859_4",                 JDK 1.1 */
220             ),
221             iso8859_4,
222             { iso8859_4_mbtowc, NULL },   { iso8859_4_wctomb, NULL })
223
224 DEFENCODING(( "ISO-8859-5",             /* IANA */
225               "ISO_8859-5",             /* IANA */
226               "ISO_8859-5:1988",        /* IANA */
227               "ISO-IR-144",             /* IANA */
228               "CYRILLIC",               /* IANA */
229               "csISOLatinCyrillic",     /* IANA */
230             /*"ISO8859-5",                 X11R6.4, glibc */
231             /*"ISO8859_5",                 JDK 1.1 */
232             ),
233             iso8859_5,
234             { iso8859_5_mbtowc, NULL },   { iso8859_5_wctomb, NULL })
235
236 DEFENCODING(( "ISO-8859-6",             /* IANA */
237               "ISO_8859-6",             /* IANA */
238               "ISO_8859-6:1987",        /* IANA */
239               "ISO-IR-127",             /* IANA */
240               "ECMA-114",               /* IANA */
241               "ASMO-708",               /* IANA */
242               "ARABIC",                 /* IANA */
243               "csISOLatinArabic",       /* IANA */
244             /*"ISO8859-6",                 X11R6.4, glibc */
245             /*"ISO8859_6",                 JDK 1.1 */
246             ),
247             iso8859_6,
248             { iso8859_6_mbtowc, NULL },   { iso8859_6_wctomb, NULL })
249
250 DEFENCODING(( "ISO-8859-7",             /* IANA, RFC 1947 */
251               "ISO_8859-7",             /* IANA */
252               "ISO_8859-7:1987",        /* IANA */
253               "ISO-IR-126",             /* IANA */
254               "ECMA-118",               /* IANA */
255               "ELOT_928",               /* IANA */
256               "GREEK8",                 /* IANA */
257               "GREEK",                  /* IANA */
258               "csISOLatinGreek",        /* IANA */
259             /*"ISO8859-7",                 X11R6.4, glibc */
260             /*"ISO8859_7",                 JDK 1.1 */
261             ),
262             iso8859_7,
263             { iso8859_7_mbtowc, NULL },   { iso8859_7_wctomb, NULL })
264
265 DEFENCODING(( "ISO-8859-8",             /* IANA */
266               "ISO_8859-8",             /* IANA */
267               "ISO_8859-8:1988",        /* IANA */
268               "ISO-IR-138",             /* IANA */
269               "HEBREW",                 /* IANA */
270               "csISOLatinHebrew",       /* IANA */
271             /*"ISO8859-8",                 X11R6.4, glibc */
272             /*"ISO8859_8",                 JDK 1.1 */
273             ),
274             iso8859_8,
275             { iso8859_8_mbtowc, NULL },   { iso8859_8_wctomb, NULL })
276
277 DEFENCODING(( "ISO-8859-9",             /* IANA */
278               "ISO_8859-9",             /* IANA */
279               "ISO_8859-9:1989",        /* IANA */
280               "ISO-IR-148",             /* IANA */
281               "LATIN5",                 /* IANA */
282               "L5",                     /* IANA */
283               "csISOLatin5",            /* IANA */
284             /*"ISO8859-9",                 X11R6.4, glibc */
285             /*"ISO8859_9",                 JDK 1.1 */
286             ),
287             iso8859_9,
288             { iso8859_9_mbtowc, NULL },   { iso8859_9_wctomb, NULL })
289
290 DEFENCODING(( "ISO-8859-10",            /* IANA */
291               "ISO_8859-10",
292               "ISO_8859-10:1992",       /* IANA */
293               "ISO-IR-157",             /* IANA */
294               "LATIN6",                 /* IANA */
295               "L6",                     /* IANA */
296               "csISOLatin6",            /* IANA */
297             /*"ISO8859-10",                X11R6.4, glibc */
298             ),
299             iso8859_10,
300             { iso8859_10_mbtowc, NULL },  { iso8859_10_wctomb, NULL })
301
302 DEFENCODING(( "ISO-8859-13",            /* IANA, glibc */
303               "ISO_8859-13",
304               "ISO-IR-179",             /* glibc */
305               "LATIN7",                 /* glibc */
306               "L7",                     /* glibc */
307             /*"ISO8859-13",                glibc */
308             ),
309             iso8859_13,
310             { iso8859_13_mbtowc, NULL },  { iso8859_13_wctomb, NULL })
311
312 DEFENCODING(( "ISO-8859-14",            /* IANA, glibc */
313               "ISO_8859-14",            /* IANA */
314               "ISO_8859-14:1998",       /* IANA, glibc */
315               "ISO-IR-199",             /* IANA */
316               "LATIN8",                 /* IANA, glibc */
317               "L8",                     /* IANA, glibc */
318               "ISO-CELTIC",             /* IANA */
319             /*"ISO8859-14",                glibc */
320             ),
321             iso8859_14,
322             { iso8859_14_mbtowc, NULL },  { iso8859_14_wctomb, NULL })
323
324 DEFENCODING(( "ISO-8859-15",            /* IANA, glibc */
325               "ISO_8859-15",            /* IANA */
326               "ISO_8859-15:1998",       /* glibc */
327               "ISO-IR-203",
328             /*"ISO8859-15",                glibc */
329             ),
330             iso8859_15,
331             { iso8859_15_mbtowc, NULL },  { iso8859_15_wctomb, NULL })
332
333 DEFENCODING(( "ISO-8859-16",
334               "ISO_8859-16",
335               "ISO_8859-16:2000",
336               "ISO-IR-226",
337             /*"ISO8859-16",                glibc */
338             ),
339             iso8859_16,
340             { iso8859_16_mbtowc, NULL },  { iso8859_16_wctomb, NULL })
341
342 DEFENCODING(( "KOI8-R",                 /* IANA, RFC 1489, X11R6.4, JDK 1.1 */
343               "csKOI8R",                /* IANA */
344             ),
345             koi8_r,
346             { koi8_r_mbtowc, NULL },      { koi8_r_wctomb, NULL })
347
348 DEFENCODING(( "KOI8-U",                 /* IANA, RFC 2319 */
349             ),
350             koi8_u,
351             { koi8_u_mbtowc, NULL },      { koi8_u_wctomb, NULL })
352
353 DEFENCODING(( "KOI8-RU",
354             ),
355             koi8_ru,
356             { koi8_ru_mbtowc, NULL },     { koi8_ru_wctomb, NULL })
357
358 /* Windows 8-bit encodings */
359
360 DEFENCODING(( "CP1250",                 /* JDK 1.1 */
361               "WINDOWS-1250",           /* IANA */
362               "MS-EE",
363             ),
364             cp1250,
365             { cp1250_mbtowc, NULL },      { cp1250_wctomb, NULL })
366
367 DEFENCODING(( "CP1251",                 /* JDK 1.1 */
368               "WINDOWS-1251",           /* IANA */
369               "MS-CYRL",
370             ),
371             cp1251,
372             { cp1251_mbtowc, NULL },      { cp1251_wctomb, NULL })
373
374 DEFENCODING(( "CP1252",                 /* JDK 1.1 */
375               "WINDOWS-1252",           /* IANA */
376               "MS-ANSI",
377             ),
378             cp1252,
379             { cp1252_mbtowc, NULL },      { cp1252_wctomb, NULL })
380
381 DEFENCODING(( "CP1253",                 /* JDK 1.1 */
382               "WINDOWS-1253",           /* IANA */
383               "MS-GREEK",
384             ),
385             cp1253,
386             { cp1253_mbtowc, NULL },      { cp1253_wctomb, NULL })
387
388 DEFENCODING(( "CP1254",                 /* JDK 1.1 */
389               "WINDOWS-1254",           /* IANA */
390               "MS-TURK",
391             ),
392             cp1254,
393             { cp1254_mbtowc, NULL },      { cp1254_wctomb, NULL })
394
395 DEFENCODING(( "CP1255",                 /* JDK 1.1 */
396               "WINDOWS-1255",           /* IANA */
397               "MS-HEBR",
398             ),
399             cp1255,
400             { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL })
401
402 DEFENCODING(( "CP1256",                 /* JDK 1.1 */
403               "WINDOWS-1256",           /* IANA */
404               "MS-ARAB",
405             ),
406             cp1256,
407             { cp1256_mbtowc, NULL },      { cp1256_wctomb, NULL })
408
409 DEFENCODING(( "CP1257",                 /* JDK 1.1 */
410               "WINDOWS-1257",           /* IANA */
411               "WINBALTRIM",
412             ),
413             cp1257,
414             { cp1257_mbtowc, NULL },      { cp1257_wctomb, NULL })
415
416 DEFENCODING(( "CP1258",                 /* JDK 1.1 */
417               "WINDOWS-1258",           /* IANA */
418             ),
419             cp1258,
420             { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL })
421
422 /* DOS 8-bit encodings */
423
424 DEFENCODING(( "CP850",                  /* IANA, JDK 1.1 */
425               "IBM850",                 /* IANA */
426               "850",                    /* IANA */
427               "csPC850Multilingual",    /* IANA */
428             ),
429             cp850,
430             { cp850_mbtowc, NULL },       { cp850_wctomb, NULL })
431
432 DEFENCODING(( "CP862",                  /* IANA, JDK 1.1 */
433               "IBM862",                 /* IANA */
434               "862",                    /* IANA */
435               "csPC862LatinHebrew",     /* IANA */
436             ),
437             cp862,
438             { cp862_mbtowc, NULL },       { cp862_wctomb, NULL })
439
440 DEFENCODING(( "CP866",                  /* IANA, JDK 1.1 */
441               "IBM866",                 /* IANA */
442               "866",                    /* IANA */
443               "csIBM866",               /* IANA */
444             ),
445             cp866,
446             { cp866_mbtowc, NULL },       { cp866_wctomb, NULL })
447
448 /* Macintosh 8-bit encodings */
449
450 DEFENCODING(( "MacRoman",               /* JDK 1.1 */
451               /* This is the best table for MACINTOSH. The ones */
452               /* in glibc and FreeBSD-iconv are bad quality. */
453               "MACINTOSH",              /* IANA */
454               "MAC",                    /* IANA */
455               "csMacintosh",            /* IANA */
456             ),
457             mac_roman,
458             { mac_roman_mbtowc, NULL },   { mac_roman_wctomb, NULL })
459
460 DEFENCODING(( "MacCentralEurope",       /* JDK 1.1 */
461             ),
462             mac_centraleurope,
463             { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL })
464
465 DEFENCODING(( "MacIceland",             /* JDK 1.1 */
466             ),
467             mac_iceland,
468             { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL })
469
470 DEFENCODING(( "MacCroatian",            /* JDK 1.1 */
471             ),
472             mac_croatian,
473             { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL })
474
475 DEFENCODING(( "MacRomania",             /* JDK 1.1 */
476             ),
477             mac_romania,
478             { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL })
479
480 DEFENCODING(( "MacCyrillic",            /* JDK 1.1 */
481             ),
482             mac_cyrillic,
483             { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL })
484
485 DEFENCODING(( "MacUkraine",             /* JDK 1.1 */
486             ),
487             mac_ukraine,
488             { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL })
489
490 DEFENCODING(( "MacGreek",               /* JDK 1.1 */
491             ),
492             mac_greek,
493             { mac_greek_mbtowc, NULL },   { mac_greek_wctomb, NULL })
494
495 DEFENCODING(( "MacTurkish",             /* JDK 1.1 */
496             ),
497             mac_turkish,
498             { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL })
499
500 DEFENCODING(( "MacHebrew",              /* JDK 1.1 */
501             ),
502             mac_hebrew,
503             { mac_hebrew_mbtowc, NULL },  { mac_hebrew_wctomb, NULL })
504
505 DEFENCODING(( "MacArabic",              /* JDK 1.1 */
506             ),
507             mac_arabic,
508             { mac_arabic_mbtowc, NULL },  { mac_arabic_wctomb, NULL })
509
510 DEFENCODING(( "MacThai",                /* JDK 1.1 */
511             ),
512             mac_thai,
513             { mac_thai_mbtowc, NULL },    { mac_thai_wctomb, NULL })
514
515 /* Other platform specific 8-bit encodings */
516
517 DEFENCODING(( "HP-ROMAN8",              /* IANA, X11R6.4 */
518               "ROMAN8",                 /* IANA */
519               "R8",                     /* IANA */
520               "csHPRoman8",             /* IANA */
521             ),
522             hp_roman8,
523             { hp_roman8_mbtowc, NULL },   { hp_roman8_wctomb, NULL })
524
525 DEFENCODING(( "NEXTSTEP",
526             ),
527             nextstep,
528             { nextstep_mbtowc, NULL },    { nextstep_wctomb, NULL })
529
530 /* Regional 8-bit encodings used for a single language */
531
532 DEFENCODING(( "ARMSCII-8",
533             ),
534             armscii_8,
535             { armscii_8_mbtowc, NULL },   { armscii_8_wctomb, NULL })
536
537 DEFENCODING(( "GEORGIAN-ACADEMY",
538             ),
539             georgian_academy,
540             { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL })
541
542 DEFENCODING(( "GEORGIAN-PS",
543             ),
544             georgian_ps,
545             { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL })
546
547 DEFENCODING(( "KOI8-T",
548             ),
549             koi8_t,
550             { koi8_t_mbtowc, NULL },      { koi8_t_wctomb, NULL })
551
552 DEFENCODING(( "MULELAO-1",
553             ),
554             mulelao,
555             { mulelao_mbtowc, NULL },     { mulelao_wctomb, NULL })
556
557 DEFENCODING(( "CP1133",
558               "IBM-CP1133",
559             ),
560             cp1133,
561             { cp1133_mbtowc, NULL },      { cp1133_wctomb, NULL })
562
563 DEFENCODING(( "TIS-620",                /* IANA */
564               "TIS620",                 /* glibc */
565               "TIS620-0",               /* glibc */
566               "TIS620.2529-1",          /* glibc */
567               "TIS620.2533-0",          /* glibc */
568               "TIS620.2533-1",
569               "ISO-IR-166",             /* glibc */
570             ),
571             tis620,
572             { tis620_mbtowc, NULL },      { tis620_wctomb, NULL })
573
574 DEFENCODING(( "CP874",                  /* JDK 1.1 */
575               "WINDOWS-874",
576             ),
577             cp874,
578             { cp874_mbtowc, NULL },       { cp874_wctomb, NULL })
579
580 DEFENCODING(( "VISCII",                 /* IANA, RFC 1456 */
581               "VISCII1.1-1",
582               "csVISCII",               /* IANA */
583             ),
584             viscii,
585             { viscii_mbtowc, NULL },      { viscii_wctomb, NULL })
586
587 DEFENCODING(( "TCVN",
588               "TCVN-5712",
589               "TCVN5712-1",
590               "TCVN5712-1:1993",
591             ),
592             tcvn,
593             { tcvn_mbtowc, tcvn_flushwc }, { tcvn_wctomb, NULL })
594
595 /* CJK character sets (not documented) */
596
597 DEFENCODING(( "JIS_C6220-1969-RO",      /* IANA */
598               "ISO646-JP",              /* IANA */
599               "ISO-IR-14",              /* IANA */
600               "JP",                     /* IANA */
601               "csISO14JISC6220ro",      /* IANA */
602             ),
603             iso646_jp,
604             { iso646_jp_mbtowc, NULL },   { iso646_jp_wctomb, NULL })
605
606 DEFENCODING(( "JIS_X0201",              /* IANA */
607               "JISX0201-1976",
608               "X0201",                  /* IANA */
609               "csHalfWidthKatakana",    /* IANA */
610             /*"JISX0201.1976-0",           X11R6.4 */
611             /*"JIS0201",                   JDK 1.1 */
612             ),
613             jisx0201,
614             { jisx0201_mbtowc, NULL },    { jisx0201_wctomb, NULL })
615
616 DEFENCODING(( "JIS_X0208",
617               "JIS_X0208-1983",         /* IANA */
618               "JIS_X0208-1990",
619               "JIS0208",
620               "X0208",                  /* IANA */
621               "ISO-IR-87",              /* IANA */
622               "JIS_C6226-1983",         /* IANA */
623               "csISO87JISX0208",        /* IANA */
624             /*"JISX0208.1983-0",           X11R6.4 */
625             /*"JISX0208.1990-0",           X11R6.4 */
626             /*"JIS0208",                   JDK 1.1 */
627             ),
628             jisx0208,
629             { jisx0208_mbtowc, NULL },    { jisx0208_wctomb, NULL })
630
631 DEFENCODING(( "JIS_X0212",
632               "JIS_X0212.1990-0",
633               "JIS_X0212-1990",         /* IANA */
634               "X0212",                  /* IANA */
635               "ISO-IR-159",             /* IANA */
636               "csISO159JISX02121990",   /* IANA */
637             /*"JISX0212.1990-0",           X11R6.4 */
638             /*"JIS0212",                   JDK 1.1 */
639             ),
640             jisx0212,
641             { jisx0212_mbtowc, NULL },    { jisx0212_wctomb, NULL })
642
643 DEFENCODING(( "GB_1988-80",             /* IANA */
644               "ISO646-CN",              /* IANA */
645               "ISO-IR-57",              /* IANA */
646               "CN",                     /* IANA */
647               "csISO57GB1988",          /* IANA */
648             ),
649             iso646_cn,
650             { iso646_cn_mbtowc, NULL },   { iso646_cn_wctomb, NULL })
651
652 DEFENCODING(( "GB_2312-80",             /* IANA */
653               "ISO-IR-58",              /* IANA */
654               "csISO58GB231280",        /* IANA */
655               "CHINESE",                /* IANA */
656             /*"GB2312.1980-0",             X11R6.4 */
657             ),
658             gb2312,
659             { gb2312_mbtowc, NULL },      { gb2312_wctomb, NULL })
660
661 DEFENCODING(( "ISO-IR-165",
662               "CN-GB-ISOIR165",         /* RFC 1922 */
663             ),
664             isoir165,
665             { isoir165_mbtowc, NULL },    { isoir165_wctomb, NULL })
666
667 DEFENCODING(( "KSC_5601",               /* IANA */
668               "KS_C_5601-1987",         /* IANA */
669               "KS_C_5601-1989",         /* IANA */
670               "ISO-IR-149",             /* IANA */
671               "csKSC56011987",          /* IANA */
672               "KOREAN",                 /* IANA */
673             /*"KSC5601.1987-0",            X11R6.4 */
674             /*"KSX1001:1992",              Ken Lunde */
675             ),
676             ksc5601,
677             { ksc5601_mbtowc, NULL },     { ksc5601_wctomb, NULL })
678
679 /* CJK encodings */
680
681 DEFENCODING(( "EUC-JP",                 /* IANA */
682               "EUCJP",                  /* glibc */
683               "Extended_UNIX_Code_Packed_Format_for_Japanese", /* IANA */
684               "csEUCPkdFmtJapanese",    /* IANA */
685             /*"EUC_JP",                    JDK 1.1 */
686             ),
687             euc_jp,
688             { euc_jp_mbtowc, NULL },      { euc_jp_wctomb, NULL })
689
690 DEFENCODING(( "SHIFT_JIS",              /* IANA */
691               "SHIFT-JIS",              /* glibc */
692               "SJIS",                   /* JDK 1.1 */
693               "MS_KANJI",               /* IANA */
694               "csShiftJIS",             /* IANA */
695             ),
696             sjis,
697             { sjis_mbtowc, NULL },        { sjis_wctomb, NULL })
698
699 DEFENCODING(( "CP932",                  /* glibc */
700             ),
701             cp932,
702             { cp932_mbtowc, NULL },       { cp932_wctomb, NULL })
703
704 DEFENCODING(( "ISO-2022-JP",            /* IANA, RFC 1468 */
705               "csISO2022JP",            /* IANA */
706             /*"ISO2022JP",                 JDK 1.1 */
707             ),
708             iso2022_jp,
709             { iso2022_jp_mbtowc, NULL },  { iso2022_jp_wctomb, iso2022_jp_reset })
710
711 DEFENCODING(( "ISO-2022-JP-1",          /* RFC 2237 */
712             ),
713             iso2022_jp1,
714             { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset })
715
716 DEFENCODING(( "ISO-2022-JP-2",          /* IANA, RFC 1554 */
717               "csISO2022JP2",           /* IANA */
718             ),
719             iso2022_jp2,
720             { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset })
721
722 DEFENCODING(( "EUC-CN",                 /* glibc */
723               "EUCCN",                  /* glibc */
724               "GB2312",                 /* IANA */
725               "CN-GB",                  /* RFC 1922 */
726               "csGB2312",               /* IANA */
727             /*"EUC_CN",                    JDK 1.1 */
728             ),
729             euc_cn,
730             { euc_cn_mbtowc, NULL },      { euc_cn_wctomb, NULL })
731
732 DEFENCODING(( "GBK",                    /* JDK 1.1 */
733               "CP936",
734             ),
735             ces_gbk,
736             { ces_gbk_mbtowc, NULL },     { ces_gbk_wctomb, NULL })
737
738 DEFENCODING(( "GB18030",                /* glibc */
739             ),
740             gb18030,
741             { gb18030_mbtowc, NULL },     { gb18030_wctomb, NULL })
742
743 DEFENCODING(( "ISO-2022-CN",            /* IANA, RFC 1922 */
744               "csISO2022CN",
745             /*"ISO2022CN",                 JDK 1.1 */
746             ),
747             iso2022_cn,
748             { iso2022_cn_mbtowc, NULL },  { iso2022_cn_wctomb, iso2022_cn_reset })
749
750 DEFENCODING(( "ISO-2022-CN-EXT",        /* IANA, RFC 1922 */
751             ),
752             iso2022_cn_ext,
753             { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset })
754
755 DEFENCODING(( "HZ",                     /* RFC 1843 */
756               "HZ-GB-2312",             /* IANA, RFC 1842 */
757             ),
758             hz,
759             { hz_mbtowc, NULL },          { hz_wctomb, hz_reset })
760
761 DEFENCODING(( "EUC-TW",                 /* glibc */
762               "EUCTW",                  /* glibc */
763               "csEUCTW",
764             /*"EUC_TW",                    JDK 1.1 */
765             ),
766             euc_tw,
767             { euc_tw_mbtowc, NULL },      { euc_tw_wctomb, NULL })
768
769 DEFENCODING(( "BIG5",                   /* IANA, JDK 1.1 */
770               "BIG-5",                  /* glibc */
771               "BIG-FIVE",               /* glibc */
772               "BIGFIVE",                /* glibc */
773               "CN-BIG5",                /* RFC 1922 */
774               "csBig5",                 /* IANA */
775             ),
776             ces_big5,
777             { ces_big5_mbtowc, NULL },    { ces_big5_wctomb, NULL })
778
779 DEFENCODING(( "CP950",                  /* JDK 1.1 */
780             ),
781             cp950,
782             { cp950_mbtowc, NULL },       { cp950_wctomb, NULL })
783
784 DEFENCODING(( "BIG5-HKSCS",             /* IANA */
785               "BIG5HKSCS",              /* glibc */
786             ),
787             big5hkscs,
788             { big5hkscs_mbtowc, NULL },   { big5hkscs_wctomb, NULL })
789
790 DEFENCODING(( "EUC-KR",                 /* IANA, RFC 1557 */
791               "EUCKR",                  /* glibc */
792               "csEUCKR",                /* IANA */
793             /*"EUC_KR",                    JDK 1.1 */
794             ),
795             euc_kr,
796             { euc_kr_mbtowc, NULL },      { euc_kr_wctomb, NULL })
797
798 DEFENCODING(( "CP949",                  /* JDK 1.1 */
799               "UHC",                    /* glibc */
800             ),
801             cp949,
802             { cp949_mbtowc, NULL },       { cp949_wctomb, NULL })
803
804 DEFENCODING(( "JOHAB",                  /* glibc */
805               "CP1361",                 /* glibc */
806             ),
807             johab,
808             { johab_mbtowc, NULL },       { johab_wctomb, NULL })
809
810 DEFENCODING(( "ISO-2022-KR",            /* IANA, RFC 1557 */
811               "csISO2022KR",            /* IANA */
812             /*"ISO2022KR",                 JDK 1.1 */
813             ),
814             iso2022_kr,
815             { iso2022_kr_mbtowc, NULL },  { iso2022_kr_wctomb, iso2022_kr_reset })
816