/* Copyright (C) 1999-2003 Free Software Foundation, Inc.
   This file is part of the GNU LIBICONV Library.

   The GNU LIBICONV Library is free software; you can redistribute it
   and/or modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either version 2
   of the License, or (at your option) any later version.

   The GNU LIBICONV Library is distributed in the hope that it will be
   useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.

   You should have received a copy of the GNU Library General Public
   License along with the GNU LIBICONV Library; see the file COPYING.LIB.
   If not, write to the Free Software Foundation, Inc., 59 Temple Place -
   Suite 330, Boston, MA 02111-1307, USA.  */

/* The list of all system independent user-visible encodings. */

/* By convention, an encoding named FOOBAR or FOO_BAR or FOO-BAR is defined
   in a file named "foobar.h" through the functions foobar_mbtowc and
   foobar_wctomb (and possibly foobar_reset). */

/* DEFENCODING(( name, alias1, ..., ),
               xxx,
               { xxx_mbtowc, xxx_flushwc },
               { xxx_wctomb, xxx_reset })
   defines an encoding with the given name and aliases. (There is no
   difference between a name and an alias. By convention, the name is chosen
   as the preferred MIME name or the standard name.)
   All names and aliases must be in ASCII. Case is not significant, but
   for the "cs*" aliases mixed case is preferred, otherwise UPPERCASE is
   preferred. For all names and aliases, note where it comes from.
   xxx is the name as used in the C code (lowercase).
 */


DEFENCODING(( "US-ASCII",               /* IANA */
              "ASCII",                  /* IANA, JDK 1.1 */
              "ISO646-US",              /* IANA */
              "ISO_646.IRV:1991",       /* IANA */
              "ISO-IR-6",               /* IANA */
              "ANSI_X3.4-1968",         /* IANA */
              "ANSI_X3.4-1986",         /* IANA */
              "CP367",                  /* IANA */
              "IBM367",                 /* IANA */
              "US",                     /* IANA */
              "csASCII",                /* IANA */
            /*"ISO646.1991-IRV",           X11R6.4 */
            ),
            ascii,
            { ascii_mbtowc, NULL },       { ascii_wctomb, NULL })

/* General multi-byte encodings */

DEFENCODING(( "UTF-8",                  /* IANA, RFC 2279 */
            /*"UTF8",                      JDK 1.1 */
            ),
            utf8,
            { utf8_mbtowc, NULL },        { utf8_wctomb, NULL })

DEFENCODING(( "UCS-2",                  /* glibc */
              "ISO-10646-UCS-2",        /* IANA */
              "csUnicode",              /* IANA */
            ),
            ucs2,
            { ucs2_mbtowc, NULL },        { ucs2_wctomb, NULL })

DEFENCODING(( "UCS-2BE",                /* glibc */
              "UNICODEBIG",             /* glibc */
              "UNICODE-1-1",            /* IANA */
              "csUnicode11",            /* IANA */
            ),
            ucs2be,
            { ucs2be_mbtowc, NULL },      { ucs2be_wctomb, NULL })

DEFENCODING(( "UCS-2LE",                /* glibc */
              "UNICODELITTLE",          /* glibc */
            ),
            ucs2le,
            { ucs2le_mbtowc, NULL },      { ucs2le_wctomb, NULL })

DEFENCODING(( "UCS-4",                  /* glibc */
              "ISO-10646-UCS-4",        /* IANA */
              "csUCS4",                 /* IANA */
            ),
            ucs4,
            { ucs4_mbtowc, NULL },        { ucs4_wctomb, NULL })

DEFENCODING(( "UCS-4BE",                /* glibc */
            ),
            ucs4be,
            { ucs4be_mbtowc, NULL },      { ucs4be_wctomb, NULL })

DEFENCODING(( "UCS-4LE",                /* glibc */
            ),
            ucs4le,
            { ucs4le_mbtowc, NULL },      { ucs4le_wctomb, NULL })

DEFENCODING(( "UTF-16",                 /* IANA, RFC 2781 */
            ),
            utf16,
            { utf16_mbtowc, NULL },       { utf16_wctomb, NULL })

DEFENCODING(( "UTF-16BE",               /* IANA, RFC 2781 */
            ),
            utf16be,
            { utf16be_mbtowc, NULL },     { utf16be_wctomb, NULL })

DEFENCODING(( "UTF-16LE",               /* IANA, RFC 2781 */
            ),
            utf16le,
            { utf16le_mbtowc, NULL },     { utf16le_wctomb, NULL })

DEFENCODING(( "UTF-32",                 /* IANA, Unicode 3.1 */
            ),
            utf32,
            { utf32_mbtowc, NULL },       { utf32_wctomb, NULL })

DEFENCODING(( "UTF-32BE",               /* IANA, Unicode 3.1 */
            ),
            utf32be,
            { utf32be_mbtowc, NULL },     { utf32be_wctomb, NULL })

DEFENCODING(( "UTF-32LE",               /* IANA, Unicode 3.1 */
            ),
            utf32le,
            { utf32le_mbtowc, NULL },     { utf32le_wctomb, NULL })

DEFENCODING(( "UTF-7",                  /* IANA, RFC 2152 */
              "UNICODE-1-1-UTF-7",      /* IANA, RFC 1642 */
              "csUnicode11UTF7",        /* IANA */
            ),
            utf7,
            { utf7_mbtowc, NULL },        { utf7_wctomb, utf7_reset })

DEFENCODING(( "UCS-2-INTERNAL",         /* libiconv */
            ),
            ucs2internal,
            { ucs2internal_mbtowc, NULL }, { ucs2internal_wctomb, NULL })

DEFENCODING(( "UCS-2-SWAPPED",          /* libiconv */
            ),
            ucs2swapped,
            { ucs2swapped_mbtowc, NULL }, { ucs2swapped_wctomb, NULL })

DEFENCODING(( "UCS-4-INTERNAL",         /* libiconv */
            ),
            ucs4internal,
            { ucs4internal_mbtowc, NULL },{ ucs4internal_wctomb, NULL })

DEFENCODING(( "UCS-4-SWAPPED",          /* libiconv */
            ),
            ucs4swapped,
            { ucs4swapped_mbtowc, NULL }, { ucs4swapped_wctomb, NULL })

DEFENCODING(( "C99",
            ),
            c99,
            { c99_mbtowc, NULL },         { c99_wctomb, NULL })

DEFENCODING(( "JAVA",
            ),
            java,
            { java_mbtowc, NULL },        { java_wctomb, NULL })

/* Standard 8-bit encodings */

DEFENCODING(( "ISO-8859-1",             /* IANA */
              "ISO_8859-1",             /* IANA */
              "ISO_8859-1:1987",        /* IANA */
              "ISO-IR-100",             /* IANA */
              "CP819",                  /* IANA */
              "IBM819",                 /* IANA */
              "LATIN1",                 /* IANA */
              "L1",                     /* IANA */
              "csISOLatin1",            /* IANA */
              "ISO8859-1",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_1",                 JDK 1.1 */
            ),
            iso8859_1,
            { iso8859_1_mbtowc, NULL },   { iso8859_1_wctomb, NULL })

DEFENCODING(( "ISO-8859-2",             /* IANA */
              "ISO_8859-2",             /* IANA */
              "ISO_8859-2:1987",        /* IANA */
              "ISO-IR-101",             /* IANA */
              "LATIN2",                 /* IANA */
              "L2",                     /* IANA */
              "csISOLatin2",            /* IANA */
              "ISO8859-2",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_2",                 JDK 1.1 */
            ),
            iso8859_2,
            { iso8859_2_mbtowc, NULL },   { iso8859_2_wctomb, NULL })

DEFENCODING(( "ISO-8859-3",             /* IANA */
              "ISO_8859-3",             /* IANA */
              "ISO_8859-3:1988",        /* IANA */
              "ISO-IR-109",             /* IANA */
              "LATIN3",                 /* IANA */
              "L3",                     /* IANA */
              "csISOLatin3",            /* IANA */
              "ISO8859-3",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_3",                 JDK 1.1 */
            ),
            iso8859_3,
            { iso8859_3_mbtowc, NULL },   { iso8859_3_wctomb, NULL })

DEFENCODING(( "ISO-8859-4",             /* IANA */
              "ISO_8859-4",             /* IANA */
              "ISO_8859-4:1988",        /* IANA */
              "ISO-IR-110",             /* IANA */
              "LATIN4",                 /* IANA */
              "L4",                     /* IANA */
              "csISOLatin4",            /* IANA */
              "ISO8859-4",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_4",                 JDK 1.1 */
            ),
            iso8859_4,
            { iso8859_4_mbtowc, NULL },   { iso8859_4_wctomb, NULL })

DEFENCODING(( "ISO-8859-5",             /* IANA */
              "ISO_8859-5",             /* IANA */
              "ISO_8859-5:1988",        /* IANA */
              "ISO-IR-144",             /* IANA */
              "CYRILLIC",               /* IANA */
              "csISOLatinCyrillic",     /* IANA */
              "ISO8859-5",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_5",                 JDK 1.1 */
            ),
            iso8859_5,
            { iso8859_5_mbtowc, NULL },   { iso8859_5_wctomb, NULL })

DEFENCODING(( "ISO-8859-6",             /* IANA */
              "ISO_8859-6",             /* IANA */
              "ISO_8859-6:1987",        /* IANA */
              "ISO-IR-127",             /* IANA */
              "ECMA-114",               /* IANA */
              "ASMO-708",               /* IANA */
              "ARABIC",                 /* IANA */
              "csISOLatinArabic",       /* IANA */
              "ISO8859-6",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_6",                 JDK 1.1 */
            ),
            iso8859_6,
            { iso8859_6_mbtowc, NULL },   { iso8859_6_wctomb, NULL })

DEFENCODING(( "ISO-8859-7",             /* IANA, RFC 1947 */
              "ISO_8859-7",             /* IANA */
              "ISO_8859-7:1987",        /* IANA */
              "ISO-IR-126",             /* IANA */
              "ECMA-118",               /* IANA */
              "ELOT_928",               /* IANA */
              "GREEK8",                 /* IANA */
              "GREEK",                  /* IANA */
              "csISOLatinGreek",        /* IANA */
              "ISO8859-7",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_7",                 JDK 1.1 */
            ),
            iso8859_7,
            { iso8859_7_mbtowc, NULL },   { iso8859_7_wctomb, NULL })

DEFENCODING(( "ISO-8859-8",             /* IANA */
              "ISO_8859-8",             /* IANA */
              "ISO_8859-8:1988",        /* IANA */
              "ISO-IR-138",             /* IANA */
              "HEBREW",                 /* IANA */
              "csISOLatinHebrew",       /* IANA */
              "ISO8859-8",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_8",                 JDK 1.1 */
            ),
            iso8859_8,
            { iso8859_8_mbtowc, NULL },   { iso8859_8_wctomb, NULL })

DEFENCODING(( "ISO-8859-9",             /* IANA */
              "ISO_8859-9",             /* IANA */
              "ISO_8859-9:1989",        /* IANA */
              "ISO-IR-148",             /* IANA */
              "LATIN5",                 /* IANA */
              "L5",                     /* IANA */
              "csISOLatin5",            /* IANA */
              "ISO8859-9",              /* X11R6.4, glibc, FreeBSD */
            /*"ISO8859_9",                 JDK 1.1 */
            ),
            iso8859_9,
            { iso8859_9_mbtowc, NULL },   { iso8859_9_wctomb, NULL })

DEFENCODING(( "ISO-8859-10",            /* IANA */
              "ISO_8859-10",
              "ISO_8859-10:1992",       /* IANA */
              "ISO-IR-157",             /* IANA */
              "LATIN6",                 /* IANA */
              "L6",                     /* IANA */
              "csISOLatin6",            /* IANA */
              "ISO8859-10",             /* X11R6.4, glibc, FreeBSD */
            ),
            iso8859_10,
            { iso8859_10_mbtowc, NULL },  { iso8859_10_wctomb, NULL })

DEFENCODING(( "ISO-8859-13",            /* IANA, glibc */
              "ISO_8859-13",
              "ISO-IR-179",             /* glibc */
              "LATIN7",                 /* glibc */
              "L7",                     /* glibc */
              "ISO8859-13",             /* glibc, FreeBSD */
            ),
            iso8859_13,
            { iso8859_13_mbtowc, NULL },  { iso8859_13_wctomb, NULL })

DEFENCODING(( "ISO-8859-14",            /* IANA, glibc */
              "ISO_8859-14",            /* IANA */
              "ISO_8859-14:1998",       /* IANA, glibc */
              "ISO-IR-199",             /* IANA */
              "LATIN8",                 /* IANA, glibc */
              "L8",                     /* IANA, glibc */
              "ISO-CELTIC",             /* IANA */
              "ISO8859-14",             /* glibc, FreeBSD */
            ),
            iso8859_14,
            { iso8859_14_mbtowc, NULL },  { iso8859_14_wctomb, NULL })

DEFENCODING(( "ISO-8859-15",            /* IANA, glibc */
              "ISO_8859-15",            /* IANA */
              "ISO_8859-15:1998",       /* glibc */
              "ISO-IR-203",
              "LATIN-9",                /* IANA */
              "ISO8859-15",             /* glibc, FreeBSD */
            ),
            iso8859_15,
            { iso8859_15_mbtowc, NULL },  { iso8859_15_wctomb, NULL })

DEFENCODING(( "ISO-8859-16",            /* IANA */
              "ISO_8859-16",            /* IANA */
              "ISO_8859-16:2001",       /* IANA */
              "ISO-IR-226",             /* IANA */
              "LATIN10",                /* IANA */
              "L10",                    /* IANA */
              "ISO8859-16",             /* glibc, FreeBSD */
            ),
            iso8859_16,
            { iso8859_16_mbtowc, NULL },  { iso8859_16_wctomb, NULL })

DEFENCODING(( "KOI8-R",                 /* IANA, RFC 1489, X11R6.4, JDK 1.1 */
              "csKOI8R",                /* IANA */
            ),
            koi8_r,
            { koi8_r_mbtowc, NULL },      { koi8_r_wctomb, NULL })

DEFENCODING(( "KOI8-U",                 /* IANA, RFC 2319 */
            ),
            koi8_u,
            { koi8_u_mbtowc, NULL },      { koi8_u_wctomb, NULL })

DEFENCODING(( "KOI8-RU",
            ),
            koi8_ru,
            { koi8_ru_mbtowc, NULL },     { koi8_ru_wctomb, NULL })

/* Windows 8-bit encodings */

DEFENCODING(( "CP1250",                 /* JDK 1.1 */
              "WINDOWS-1250",           /* IANA */
              "MS-EE",
            ),
            cp1250,
            { cp1250_mbtowc, NULL },      { cp1250_wctomb, NULL })

DEFENCODING(( "CP1251",                 /* JDK 1.1 */
              "WINDOWS-1251",           /* IANA */
              "MS-CYRL",
            ),
            cp1251,
            { cp1251_mbtowc, NULL },      { cp1251_wctomb, NULL })

DEFENCODING(( "CP1252",                 /* JDK 1.1 */
              "WINDOWS-1252",           /* IANA */
              "MS-ANSI",
            ),
            cp1252,
            { cp1252_mbtowc, NULL },      { cp1252_wctomb, NULL })

DEFENCODING(( "CP1253",                 /* JDK 1.1 */
              "WINDOWS-1253",           /* IANA */
              "MS-GREEK",
            ),
            cp1253,
            { cp1253_mbtowc, NULL },      { cp1253_wctomb, NULL })

DEFENCODING(( "CP1254",                 /* JDK 1.1 */
              "WINDOWS-1254",           /* IANA */
              "MS-TURK",
            ),
            cp1254,
            { cp1254_mbtowc, NULL },      { cp1254_wctomb, NULL })

DEFENCODING(( "CP1255",                 /* JDK 1.1 */
              "WINDOWS-1255",           /* IANA */
              "MS-HEBR",
            ),
            cp1255,
            { cp1255_mbtowc, cp1255_flushwc }, { cp1255_wctomb, NULL })

DEFENCODING(( "CP1256",                 /* JDK 1.1 */
              "WINDOWS-1256",           /* IANA */
              "MS-ARAB",
            ),
            cp1256,
            { cp1256_mbtowc, NULL },      { cp1256_wctomb, NULL })

DEFENCODING(( "CP1257",                 /* JDK 1.1 */
              "WINDOWS-1257",           /* IANA */
              "WINBALTRIM",
            ),
            cp1257,
            { cp1257_mbtowc, NULL },      { cp1257_wctomb, NULL })

DEFENCODING(( "CP1258",                 /* JDK 1.1 */
              "WINDOWS-1258",           /* IANA */
            ),
            cp1258,
            { cp1258_mbtowc, cp1258_flushwc }, { cp1258_wctomb, NULL })

/* DOS 8-bit encodings */

DEFENCODING(( "CP850",                  /* IANA, JDK 1.1 */
              "IBM850",                 /* IANA */
              "850",                    /* IANA */
              "csPC850Multilingual",    /* IANA */
            ),
            cp850,
            { cp850_mbtowc, NULL },       { cp850_wctomb, NULL })

DEFENCODING(( "CP862",                  /* IANA, JDK 1.1 */
              "IBM862",                 /* IANA */
              "862",                    /* IANA */
              "csPC862LatinHebrew",     /* IANA */
            ),
            cp862,
            { cp862_mbtowc, NULL },       { cp862_wctomb, NULL })

DEFENCODING(( "CP866",                  /* IANA, JDK 1.1 */
              "IBM866",                 /* IANA */
              "866",                    /* IANA */
              "csIBM866",               /* IANA */
            ),
            cp866,
            { cp866_mbtowc, NULL },       { cp866_wctomb, NULL })

/* Macintosh 8-bit encodings */

DEFENCODING(( "MacRoman",               /* JDK 1.1 */
              /* This is the best table for MACINTOSH. The ones */
              /* in glibc and FreeBSD-iconv are bad quality. */
              "MACINTOSH",              /* IANA */
              "MAC",                    /* IANA */
              "csMacintosh",            /* IANA */
            ),
            mac_roman,
            { mac_roman_mbtowc, NULL },   { mac_roman_wctomb, NULL })

DEFENCODING(( "MacCentralEurope",       /* JDK 1.1 */
            ),
            mac_centraleurope,
            { mac_centraleurope_mbtowc, NULL }, { mac_centraleurope_wctomb, NULL })

DEFENCODING(( "MacIceland",             /* JDK 1.1 */
            ),
            mac_iceland,
            { mac_iceland_mbtowc, NULL }, { mac_iceland_wctomb, NULL })

DEFENCODING(( "MacCroatian",            /* JDK 1.1 */
            ),
            mac_croatian,
            { mac_croatian_mbtowc, NULL }, { mac_croatian_wctomb, NULL })

DEFENCODING(( "MacRomania",             /* JDK 1.1 */
            ),
            mac_romania,
            { mac_romania_mbtowc, NULL }, { mac_romania_wctomb, NULL })

DEFENCODING(( "MacCyrillic",            /* JDK 1.1 */
            ),
            mac_cyrillic,
            { mac_cyrillic_mbtowc, NULL }, { mac_cyrillic_wctomb, NULL })

DEFENCODING(( "MacUkraine",             /* JDK 1.1 */
            ),
            mac_ukraine,
            { mac_ukraine_mbtowc, NULL }, { mac_ukraine_wctomb, NULL })

DEFENCODING(( "MacGreek",               /* JDK 1.1 */
            ),
            mac_greek,
            { mac_greek_mbtowc, NULL },   { mac_greek_wctomb, NULL })

DEFENCODING(( "MacTurkish",             /* JDK 1.1 */
            ),
            mac_turkish,
            { mac_turkish_mbtowc, NULL }, { mac_turkish_wctomb, NULL })

DEFENCODING(( "MacHebrew",              /* JDK 1.1 */
            ),
            mac_hebrew,
            { mac_hebrew_mbtowc, NULL },  { mac_hebrew_wctomb, NULL })

DEFENCODING(( "MacArabic",              /* JDK 1.1 */
            ),
            mac_arabic,
            { mac_arabic_mbtowc, NULL },  { mac_arabic_wctomb, NULL })

DEFENCODING(( "MacThai",                /* JDK 1.1 */
            ),
            mac_thai,
            { mac_thai_mbtowc, NULL },    { mac_thai_wctomb, NULL })

/* Other platform specific 8-bit encodings */

DEFENCODING(( "HP-ROMAN8",              /* IANA, X11R6.4 */
              "ROMAN8",                 /* IANA */
              "R8",                     /* IANA */
              "csHPRoman8",             /* IANA */
            ),
            hp_roman8,
            { hp_roman8_mbtowc, NULL },   { hp_roman8_wctomb, NULL })

DEFENCODING(( "NEXTSTEP",
            ),
            nextstep,
            { nextstep_mbtowc, NULL },    { nextstep_wctomb, NULL })

/* Regional 8-bit encodings used for a single language */

DEFENCODING(( "ARMSCII-8",
            ),
            armscii_8,
            { armscii_8_mbtowc, NULL },   { armscii_8_wctomb, NULL })

DEFENCODING(( "GEORGIAN-ACADEMY",
            ),
            georgian_academy,
            { georgian_academy_mbtowc, NULL }, { georgian_academy_wctomb, NULL })

DEFENCODING(( "GEORGIAN-PS",
            ),
            georgian_ps,
            { georgian_ps_mbtowc, NULL }, { georgian_ps_wctomb, NULL })

DEFENCODING(( "KOI8-T",
            ),
            koi8_t,
            { koi8_t_mbtowc, NULL },      { koi8_t_wctomb, NULL })

DEFENCODING(( "MULELAO-1",
            ),
            mulelao,
            { mulelao_mbtowc, NULL },     { mulelao_wctomb, NULL })

DEFENCODING(( "CP1133",
              "IBM-CP1133",
            ),
            cp1133,
            { cp1133_mbtowc, NULL },      { cp1133_wctomb, NULL })

DEFENCODING(( "TIS-620",                /* IANA */
              "TIS620",                 /* glibc */
              "TIS620-0",               /* glibc */
              "TIS620.2529-1",          /* glibc */
              "TIS620.2533-0",          /* glibc */
              "TIS620.2533-1",
              "ISO-IR-166",             /* glibc */
            ),
            tis620,
            { tis620_mbtowc, NULL },      { tis620_wctomb, NULL })

DEFENCODING(( "CP874",                  /* JDK 1.1 */
              "WINDOWS-874",
            ),
            cp874,
            { cp874_mbtowc, NULL },       { cp874_wctomb, NULL })

DEFENCODING(( "VISCII",                 /* IANA, RFC 1456 */
              "VISCII1.1-1",
              "csVISCII",               /* IANA */
            ),
            viscii,
            { viscii_mbtowc, NULL },      { viscii_wctomb, NULL })

DEFENCODING(( "TCVN",
              "TCVN-5712",
              "TCVN5712-1",
              "TCVN5712-1:1993",
            ),
            tcvn,
            { tcvn_mbtowc, tcvn_flushwc }, { tcvn_wctomb, NULL })

/* CJK character sets (not documented) */

DEFENCODING(( "JIS_C6220-1969-RO",      /* IANA */
              "ISO646-JP",              /* IANA */
              "ISO-IR-14",              /* IANA */
              "JP",                     /* IANA */
              "csISO14JISC6220ro",      /* IANA */
            ),
            iso646_jp,
            { iso646_jp_mbtowc, NULL },   { iso646_jp_wctomb, NULL })

DEFENCODING(( "JIS_X0201",              /* IANA */
              "JISX0201-1976",
              "X0201",                  /* IANA */
              "csHalfWidthKatakana",    /* IANA */
            /*"JISX0201.1976-0",           X11R6.4 */
            /*"JIS0201",                   JDK 1.1 */
            ),
            jisx0201,
            { jisx0201_mbtowc, NULL },    { jisx0201_wctomb, NULL })

DEFENCODING(( "JIS_X0208",
              "JIS_X0208-1983",         /* IANA */
              "JIS_X0208-1990",
              "JIS0208",
              "X0208",                  /* IANA */
              "ISO-IR-87",              /* IANA */
              "JIS_C6226-1983",         /* IANA */
              "csISO87JISX0208",        /* IANA */
            /*"JISX0208.1983-0",           X11R6.4 */
            /*"JISX0208.1990-0",           X11R6.4 */
            /*"JIS0208",                   JDK 1.1 */
            ),
            jisx0208,
            { jisx0208_mbtowc, NULL },    { jisx0208_wctomb, NULL })

DEFENCODING(( "JIS_X0212",
              "JIS_X0212.1990-0",
              "JIS_X0212-1990",         /* IANA */
              "X0212",                  /* IANA */
              "ISO-IR-159",             /* IANA */
              "csISO159JISX02121990",   /* IANA */
            /*"JISX0212.1990-0",           X11R6.4 */
            /*"JIS0212",                   JDK 1.1 */
            ),
            jisx0212,
            { jisx0212_mbtowc, NULL },    { jisx0212_wctomb, NULL })

DEFENCODING(( "GB_1988-80",             /* IANA */
              "ISO646-CN",              /* IANA */
              "ISO-IR-57",              /* IANA */
              "CN",                     /* IANA */
              "csISO57GB1988",          /* IANA */
            ),
            iso646_cn,
            { iso646_cn_mbtowc, NULL },   { iso646_cn_wctomb, NULL })

DEFENCODING(( "GB_2312-80",             /* IANA */
              "ISO-IR-58",              /* IANA */
              "csISO58GB231280",        /* IANA */
              "CHINESE",                /* IANA */
            /*"GB2312.1980-0",             X11R6.4 */
            ),
            gb2312,
            { gb2312_mbtowc, NULL },      { gb2312_wctomb, NULL })

DEFENCODING(( "ISO-IR-165",
              "CN-GB-ISOIR165",         /* RFC 1922 */
            ),
            isoir165,
            { isoir165_mbtowc, NULL },    { isoir165_wctomb, NULL })

DEFENCODING(( "KSC_5601",               /* IANA */
              "KS_C_5601-1987",         /* IANA */
              "KS_C_5601-1989",         /* IANA */
              "ISO-IR-149",             /* IANA */
              "csKSC56011987",          /* IANA */
              "KOREAN",                 /* IANA */
            /*"KSC5601.1987-0",            X11R6.4 */
            /*"KSX1001:1992",              Ken Lunde */
            ),
            ksc5601,
            { ksc5601_mbtowc, NULL },     { ksc5601_wctomb, NULL })

/* CJK encodings */

DEFENCODING(( "EUC-JP",                 /* IANA */
              "EUCJP",                  /* glibc */
              "Extended_UNIX_Code_Packed_Format_for_Japanese", /* IANA */
              "csEUCPkdFmtJapanese",    /* IANA */
            /*"EUC_JP",                    JDK 1.1 */
            ),
            euc_jp,
            { euc_jp_mbtowc, NULL },      { euc_jp_wctomb, NULL })

DEFENCODING(( "SHIFT_JIS",              /* IANA */
              "SHIFT-JIS",              /* glibc */
              "SJIS",                   /* JDK 1.1 */
              "MS_KANJI",               /* IANA */
              "csShiftJIS",             /* IANA */
            ),
            sjis,
            { sjis_mbtowc, NULL },        { sjis_wctomb, NULL })

DEFENCODING(( "CP932",                  /* glibc */
            ),
            cp932,
            { cp932_mbtowc, NULL },       { cp932_wctomb, NULL })

DEFENCODING(( "ISO-2022-JP",            /* IANA, RFC 1468 */
              "csISO2022JP",            /* IANA */
            /*"ISO2022JP",                 JDK 1.1 */
            ),
            iso2022_jp,
            { iso2022_jp_mbtowc, NULL },  { iso2022_jp_wctomb, iso2022_jp_reset })

DEFENCODING(( "ISO-2022-JP-1",          /* RFC 2237 */
            ),
            iso2022_jp1,
            { iso2022_jp1_mbtowc, NULL }, { iso2022_jp1_wctomb, iso2022_jp1_reset })

DEFENCODING(( "ISO-2022-JP-2",          /* IANA, RFC 1554 */
              "csISO2022JP2",           /* IANA */
            ),
            iso2022_jp2,
            { iso2022_jp2_mbtowc, NULL }, { iso2022_jp2_wctomb, iso2022_jp2_reset })

DEFENCODING(( "EUC-CN",                 /* glibc */
              "EUCCN",                  /* glibc */
              "GB2312",                 /* IANA */
              "CN-GB",                  /* RFC 1922 */
              "csGB2312",               /* IANA */
            /*"EUC_CN",                    JDK 1.1 */
            ),
            euc_cn,
            { euc_cn_mbtowc, NULL },      { euc_cn_wctomb, NULL })

DEFENCODING(( "GBK",                    /* IANA, JDK 1.1 */
              "CP936",                  /* IANA */
              "MS936",                  /* IANA */
              "WINDOWS-936",            /* IANA */
            ),
            ces_gbk,
            { ces_gbk_mbtowc, NULL },     { ces_gbk_wctomb, NULL })

DEFENCODING(( "GB18030",                /* IANA, glibc */
            ),
            gb18030,
            { gb18030_mbtowc, NULL },     { gb18030_wctomb, NULL })

DEFENCODING(( "ISO-2022-CN",            /* IANA, RFC 1922 */
              "csISO2022CN",
            /*"ISO2022CN",                 JDK 1.1 */
            ),
            iso2022_cn,
            { iso2022_cn_mbtowc, NULL },  { iso2022_cn_wctomb, iso2022_cn_reset })

DEFENCODING(( "ISO-2022-CN-EXT",        /* IANA, RFC 1922 */
            ),
            iso2022_cn_ext,
            { iso2022_cn_ext_mbtowc, NULL }, { iso2022_cn_ext_wctomb, iso2022_cn_ext_reset })

DEFENCODING(( "HZ",                     /* RFC 1843 */
              "HZ-GB-2312",             /* IANA, RFC 1842 */
            ),
            hz,
            { hz_mbtowc, NULL },          { hz_wctomb, hz_reset })

DEFENCODING(( "EUC-TW",                 /* glibc */
              "EUCTW",                  /* glibc */
              "csEUCTW",
            /*"EUC_TW",                    JDK 1.1 */
            ),
            euc_tw,
            { euc_tw_mbtowc, NULL },      { euc_tw_wctomb, NULL })

DEFENCODING(( "BIG5",                   /* IANA, JDK 1.1 */
              "BIG-5",                  /* glibc */
              "BIG-FIVE",               /* glibc */
              "BIGFIVE",                /* glibc */
              "CN-BIG5",                /* RFC 1922 */
              "csBig5",                 /* IANA */
            ),
            ces_big5,
            { ces_big5_mbtowc, NULL },    { ces_big5_wctomb, NULL })

DEFENCODING(( "CP950",                  /* JDK 1.1 */
            ),
            cp950,
            { cp950_mbtowc, NULL },       { cp950_wctomb, NULL })

DEFENCODING(( "BIG5-HKSCS",             /* IANA */
              "BIG5HKSCS",              /* glibc */
            ),
            big5hkscs,
            { big5hkscs_mbtowc, NULL },   { big5hkscs_wctomb, NULL })

DEFENCODING(( "EUC-KR",                 /* IANA, RFC 1557 */
              "EUCKR",                  /* glibc */
              "csEUCKR",                /* IANA */
            /*"EUC_KR",                    JDK 1.1 */
            ),
            euc_kr,
            { euc_kr_mbtowc, NULL },      { euc_kr_wctomb, NULL })

DEFENCODING(( "CP949",                  /* JDK 1.1 */
              "UHC",                    /* glibc */
            ),
            cp949,
            { cp949_mbtowc, NULL },       { cp949_wctomb, NULL })

DEFENCODING(( "JOHAB",                  /* glibc */
              "CP1361",                 /* glibc */
            ),
            johab,
            { johab_mbtowc, NULL },       { johab_wctomb, NULL })

DEFENCODING(( "ISO-2022-KR",            /* IANA, RFC 1557 */
              "csISO2022KR",            /* IANA */
            /*"ISO2022KR",                 JDK 1.1 */
            ),
            iso2022_kr,
            { iso2022_kr_mbtowc, NULL },  { iso2022_kr_wctomb, iso2022_kr_reset })

