# *******************************************************************************
# *
# *   Copyright (C) 1995-2002, International Business Machines
# *   Corporation and others.  All Rights Reserved.
# *
# *******************************************************************************

# IMPORTANT NOTE
#
# This file is not read directly by ICU. If you change it, you need to
# run gencnval, and eventually pkgdata to update the representation that
# ICU uses for aliases.

# Please be friendly to the rest of use that edit this table by
# keeping this table free of tabs.

# This is an alias file used by the character set converter.
#
# Format:
#
#     Actual file name || Algorithm name     alias1 alias2 ...
#
# except for column 1 (file names) case insensitive. Names are separated
# by whitespace.
#
# All names can be tagged by including a space-separated list of tags in
# curly braces, as in ISO_8859-1:1987{IANA*} iso-8859-1 { MIME* } or
# some-charset{MIME* IANA*}. The order of tags does not matter, and
# whitespace is allowed between the tagged name and the tags list.
#
# The tags can be used to get standard names using ucnv_getStandardName().
#
# Here is a list of tags used in this file:
#
# IANA          The IANA charset name, as documented in RFC 1700.
# MIME          The MIME charset name, used for content type tagging. 
#
# The * after the standard tag denotes that the previous alias is the
# preferred (default) charset name for that standard. There can only
# be one of these default charset names per converter.

# The world is getting more complicated...
# Supporting XML parsers, HTML, MIME, and similar applications
# that mark encodings with unique charset names, we are forced to
# make this table much more static than before.

# It means that a new encoding, one that differs from an
# old one by changing a code point, e.g., to the Euro sign,
# must not get an old alias, because it would mean that
# old files with this alias would be interpreted differently.

# If an encoding gets updated by assigning characters to previously
# unassigned code points, then a new name is not necessary.
# Also, some codepages map unassigned codepage byte values
# to the same numbers in Unicode for roundtripping. It may be
# industry practice to keep the encoding name in such a case, too
# (example: Windows codepages).

# Especially, the aliases listed in the list of character sets
# that is maintained by the IANA (http://www.iana.org/) must
# not be changed to mean encodings different from what this
# list shows.
# Currently, the IANA list is at
# http://www.iana.org/assignments/character-sets

# Name matching is case-insensitive. Also, dashes '-', underscores '_'
# and spaces ' ' are ignored in names (thus cs-iso-latin-1 and csisolatin1
# are the same).
# However, the names in the left column are directly file names
# or names of algorithmic converters, and their case must not
# be changed - or else code and/or file names must also be changed.



# This is the list of supported standard tags.
# When multiple converters have the same alias under different standards,
# the standard nearest to the top of this list with that alias will
# be the first converter that will be opened.
#
# The general ordering is from specific and frequently used to more general
# and rarely used.
{   UTR22           # Name format specified by http://www.unicode.org/unicode/reports/tr22/
    # ICU             # Can also use ICU_FEATURE
    IBM             # The IBM CCSID number is specified by ibm-*
    WINDOWS         # The Microsoft code page identifier number is specified by cp*
    JAVA            # Source: Sun JDK. Preferred name must be an exact match. Alias name case is ignored, but dashes are not ignored.
    # GLIBC
    # AIX DB2
    # SOLARIS
    # APPLE
    # HPUX
    IANA            # Source: http://www.iana.org/assignments/character-sets
    MIME            # Source: http://www.iana.org/assignments/character-sets
    # MSIE            # MSIE is Internet Explorer, which can be different from Windows
    ZOS_USS         # z/OS (os/390) Unix System Services (USS), which has NL<->LF swapping. They have the same format as the IBM tag.
    }



# Fully algorithmic converters

UTF-8 { IANA* MIME* }           ibm-1208 cp1208

# The ICU 2.2 UTF-16/32 converters detect and write a BOM.
UTF-16 { IANA* MIME* }          ISO-10646-UCS-2 { IANA } csUnicode ibm-17584 ibm-13488 ibm-1200 cp1200 ucs-2
UTF-16BE { IANA* MIME* }        UTF16_BigEndian x-utf-16be
UTF-16LE { IANA* MIME* }        UTF16_LittleEndian x-utf-16le

# ICU-specific names for special uses
UTF16_PlatformEndian
UTF16_OppositeEndian

UTF-32 { IANA* MIME* }          ISO-10646-UCS-4 { IANA } csUCS4 ucs-4 ibm-1232
UTF-32BE { IANA* }              UTF32_BigEndian
UTF-32LE { IANA* }              UTF32_LittleEndian

# ICU-specific names for special uses
UTF32_PlatformEndian
UTF32_OppositeEndian

# On UTF-7:
# RFC 2152 (http://www.imc.org/rfc2152) allows to encode some US-ASCII
# characters directly or in base64. Especially, the characters in set O
# as defined in the RFC (!"#$%&*;<=>@[]^_`{|}) may be encoded directly but are not
# allowed in, e.g., email headers.
# By default, the ICU UTF-7 converter encodes set O directly.
# By choosing the option "version=1", set O will be escaped instead.
# For example:
#     utf7Converter=ucnv_open("UTF-7,version=1");
UTF-7 { IANA* MIME* }

SCSU { IANA* }
BOCU-1

# See http://www.unicode.org/unicode/reports/tr26 for this Compatibility Encoding Scheme for UTF-16
# The Unicode Consortium does not encourage the use of CESU-8
CESU-8 { IANA* }

ISO-8859-1 { MIME* IANA }
    LATIN_1     # Old ICU name
    ibm-819
    IBM819 { IANA }
    cp819 { IANA }
    latin1 { IANA }
    8859-1
    csISOLatin1 { IANA }
    iso-ir-100 { IANA }
    ISO_8859-1:1987 { IANA* }
    l1 { IANA }
    819
    # ANSI_X3.110-1983  # This is for a different IANA alias.  This isn't iso-8859-1.

US-ASCII { MIME* IANA }
    ASCII { JAVA* IANA }
    ascii-7 { JAVA }
    ANSI_X3.4-1968 { IANA* }
    ANSI_X3.4-1986 { IANA }
    ISO_646.irv:1991 { IANA }
    iso_646.irv:1983 { JAVA }
    ISO646-US { JAVA IANA }
    us { IANA }
    csASCII { IANA }
    646 { JAVA }
    iso-ir-6 { IANA }
    cp367 { IANA }
    # Java says "default" too, but that makes no sense.

# Partially algorithmic converters

ISO_2022                         ISO-2022 { MIME* } 2022 cp2022
ISO_2022,locale=ja,version=0     ISO-2022-JP { IANA* MIME* } csISO2022JP
ISO_2022,locale=ja,version=1     ISO-2022-JP-1 JIS JIS_Encoding { IANA* }
ISO_2022,locale=ja,version=2     ISO-2022-JP-2 { IANA* MIME* } csISO2022JP2
ISO_2022,locale=ja,version=3     JIS7 csJISEncoding
ISO_2022,locale=ja,version=4     JIS8
ISO_2022,locale=ko,version=0     ISO-2022-KR { IANA* MIME* } csISO2022KR
ISO_2022,locale=ko,version=1     ibm-25546 ibm-25546_P100 25546
ISO_2022,locale=zh,version=0     ISO-2022-CN { IANA* MIME* } # csISO2022CN
ISO_2022,locale=zh,version=1     ISO-2022-CN-EXT { IANA* MIME* }
HZ                               HZ-GB-2312 { IANA* MIME* }
ISCII,version=0         iscii-dev x-iscii-de
ISCII,version=1         iscii-bng x-iscii-as x-iscii-be
ISCII,version=2         iscii-gur x-iscii-pa
ISCII,version=3         iscii-guj x-iscii-gu
ISCII,version=4         iscii-ori x-iscii-or
ISCII,version=5         iscii-tml x-iscii-ta
ISCII,version=6         iscii-tlg x-iscii-te
ISCII,version=7         iscii-knd x-iscii-ka
ISCII,version=8         iscii-mlm x-iscii-ma

# GB 18030 is partly algorithmic, using the MBCS converter
gb18030 { IANA* }       ibm-1392

# Lotus specific
LMBCS-1                 lmbcs
LMBCS-2
LMBCS-3
LMBCS-4
LMBCS-5
LMBCS-6
LMBCS-8
LMBCS-11
LMBCS-16
LMBCS-17
LMBCS-18
LMBCS-19


# Table-based interchange codepages

ibm-367                 IBM367 { IANA* }    # This is ASCII, but it has fallbacks

# Central Europe
# Standard iso-8859-1, which does not have the Euro update.
# See iso-8859-15 (latin9) for the Euro update
ibm-912                 iso-8859-2 { MIME* IANA }
                        latin2 { IANA }
                        # ISO8859_2 { JAVA* } # This is really the default for Java and many others.
                        8859-2
                        csISOLatin2 { IANA }
                        iso-ir-101 { IANA }
                        ISO_8859-2:1987 { IANA* }
                        l2 { IANA }
                        cp912
                        912

# Maltese Esperanto
ibm-913                 iso-8859-3 { MIME* IANA }
                        latin3 { IANA }
                        8859-3
                        csISOLatin3 { IANA }
                        iso-ir-109
                        ISO_8859-3:1988 { IANA* }
                        l3 { IANA }
                        cp913
                        913

# Baltic
ibm-914                 iso-8859-4 { MIME* IANA }
                        latin4 { IANA }
                        8859-4
                        csISOLatin4 { IANA }
                        iso-ir-110 { IANA }
                        ISO_8859-4:1988 { IANA* }
                        l4 { IANA }
                        cp914
                        914

# Cyrillic
ibm-915                 iso-8859-5 { MIME* IANA }
                        cyrillic { IANA }
                        8859-5
                        csISOLatinCyrillic { IANA }
                        iso-ir-144 { IANA }
                        ISO_8859-5:1988 { IANA* }
                        cp915
                        915

# Arabic
# ISO_8859-6-E and ISO_8859-6-I are similar to this charset, but they are not the same
# -E means explicit. -I means implicit.  However those aliases are rarely used.
ibm-1089                iso-8859-6 { MIME* IANA }
                        arabic { IANA }
                        8859-6
                        csISOLatinArabic { IANA }
                        iso-ir-127 { IANA }
                        ISO_8859-6:1987 { IANA* }
                        ecma-114 { IANA }
                        asmo-708 { IANA }
                        cp1089
                        1089

# ISO Greek (w/ euro update)
ibm-4909                iso-8859-7 { MIME* IANA }
                        greek { IANA }
                        greek8 { IANA }
                        elot_928 { IANA }
                        ecma-118 { IANA }
                        8859-7
                        csISOLatinGreek { IANA }
                        iso-ir-126 { IANA }
                        ISO_8859-7:1987 { IANA* }
                        cp813
                        813
ibm-813                 # Same as 4909 above but without the euro update

# hebrew
# ISO_8859-8-E and ISO_8859-8-I are similar to this charset, but they are not the same
# -E means explicit. -I means implicit.
ibm-916                 iso-8859-8 { MIME* IANA }
                        hebrew { IANA }
                        8859-8
                        csISOLatinHebrew { IANA }
                        iso-ir-138 { IANA }
                        ISO_8859-8:1988 { IANA* }
                        cp916
                        916

# Turkish
ibm-920                 iso-8859-9 { MIME* IANA }
                        ECMA-128    # IANA doesn't have this alias 6/24/2002
                        latin5 { IANA }
                        8859-9
                        csISOLatin5 { IANA }
                        iso-ir-148 { IANA }
                        ISO_8859-9:1989 { IANA* }
                        l5 { IANA }
                        cp920
                        920

# Latin 9
ibm-923                 iso-8859-15 { IANA* MIME* } # IANA only has iso-8859-15 (6/24/2002)
                        # ISO8859_15 { JAVA* } # This is really the default for Java and many others.
                        8859-15
                        latin9
                        latin0
                        csisolatin0
                        csisolatin9
                        iso8859_15_fdis
                        cp923
                        923

ibm-1252                ibm-1004 cp1004      # Windows Latin 1 without Euro
ibm-942_P120-2000       ibm-942_VASCII_VSUB_VPUA ibm-942 ibm-932 ibm-932_VASCII_VSUB_VPUA   # Old s_jis ibm-932 added!   
ibm-942_P12A-2000       ibm-942_VSUB_VPUA shift_jis78 sjis78 ibm-932_VSUB_VPUA
ibm-943_P130-2000       ibm-943_VASCII_VSUB_VPUA ibm-943 # japanese. Unicode name is \u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe Iana says that Windows-31J is an extension to csshiftjis ibm-932 removed
ibm-943_P14A-2000       ibm-943_VSUB_VPUA Shift_JIS { MIME* } csWindows31J sjis cp943 cp932 pck ms_kanji csshiftjis windows-31j  x-sjis 943
ibm-949_P110-2000       ibm-949_VASCII_VSUB_VPUA ibm-949

ibm-949_P11A-2000
                        ibm-949_VSUB_VPUA
                        KS_C_5601-1987 { IANA* }
                        iso-ir-149 { IANA }
                        KS_C_5601-1989 { IANA }
                        csKSC56011987 { IANA }
                        KSC_5601 { MIME* IANA }
                        johab
                        ks_x_1001:1992
                        949
                        korean { IANA }
                        ksc5601_1992 # KSC-5601-1992
                        ksc5601_1987 # Needed by Java

ibm-1370                Big5 { IANA* MIME* } csBig5 x-big5 cp950 950 # Taiwan Big-5 (w/ euro update)
ibm-950                 # Taiwan Big-5 (w/o euro update)
ibm-1386                gbk { IANA* } cp936 windows-936 ms936 zh_cn # Chinese GBK removed

ibm-33722_P120-2000     ibm-33722_VASCII_VPUA ibm-33722 cp33722 33722 ibm-5050 # Japan EUC with \ <-> Yen mapping
ibm-33722_P12A-2000     ibm-33722_VPUA EUC-JP { MIME* } ibm-eucJP eucjis Extended_UNIX_Code_Packed_Format_for_Japanese { IANA* } cseucpkdfmtjapanese X-EUC-JP # Japan EUC. x-euc-jp is a MIME name
ibm-970                 EUC-KR { IANA* MIME* } ibm-eucKR csEUCKR  # Korean EUC. x-euc-kr is a MIME name
ibm-964                 EUC-TW ibm-eucTW cns11643               # Taiwan EUC. x-euc-tw is a MIME name

ibm-1363_P110-2000      ibm-1363 ibm-1363_VASCII_VSUB_VPUA ibm-1362 # Korean KSC Korean Windows MBCS 

ibm-1363_P11B-2000      ibm-1363_VSUB_VPUA
                        windows-949
                        cp949
                        cp1363
                        ksc
                        # korean # The korean alias from IANA goes to ibm-949_P11A-2000

ibm-1383_P110-2000      ibm-1383_VPUA
                        ibm-1383
                        EUC-CN
                        ibm-eucCN
                        GB_2312-80 { IANA* }
                        chinese { IANA }
                        gb              # This is not an IANA name. gb in IANA means Great Britain.
                        iso-ir-58 { IANA }
                        csISO58GB231280 { IANA }
                        GB2312 { MIME* }
                        gb2312-1980
                        cp1383
                        1383
                        csGB2312    # China EUC. x-euc-cn is a MIME name

ibm-1162                tis-620 { IANA* } cp874 windows-874 ms874 cp9066 874 # Thai (w/ euro update)
ibm-874                 ibm-1161 # Same as 1162 (w/o euro update)

# Platform codepages
ibm-437                 cp437 csPC8CodePage437 437  # PC US
ibm-850                 IBM850 { IANA* } cp850 { MIME* } 850 csPC850Multilingual    # PC latin1
ibm-851                 IBM851 { IANA* } cp851 { MIME* } 851 csPC851            # PC DOS Greek (w/o euro)
ibm-858                 cp858  { MIME* } IBM00858 { IANA* }       # PC latin1 with Euro cp850 removed
ibm-9044                852 csPCp852 cp852  # PC latin2 (w/ euro update) cp852 is a MIME name for IBM-852
ibm-852                 IBM852 { IANA* }    # PC latin2 (w/o euro update)
ibm-872                 855 csIBM855 cp855 csPCp855 # PC cyrillic (w/ euro update) cp855 is a MIME name for IBM-855
ibm-855                 IBM855 { IANA* }            # PC cyrillic (w/o euro update)
ibm-856                 cp856 { MIME* }  856 # PC Hebrew (old)
ibm-9049                857 csIBM857 cp857 { MIME* } # PC Latin 5 (Turkish) (w/ euro update)
ibm-857                 IBM857 { IANA* }    # PC Latin 5 (w/o euro update)
ibm-859                 cp859 { MIME* }     # PC Latin     9 (w/ euro update)
ibm-860                 IBM860 { IANA* } cp860 { MIME* } 860 csIBM860         # PC Portugal
ibm-861                 IBM861 { IANA* } cp861 { MIME* } 861 cp-is csIBM861   # PC Iceland
ibm-867                 cp867  862 cp862 { MIME* } cspc862latinhebrew    # PC Hebrew (w/ euro update)
ibm-862                 IBM862 { IANA* }                                 # PC Hebrew (w/o euro update)
ibm-863                 IBM863 { IANA* } cp863 { MIME* } 863 csIBM863         # PC Canadian French
ibm-17248               cp864 { MIME* } csIBM864 # PC Arabic (w/ euro update)
ibm-864                 IBM864 { IANA* }         # PC Arabic (w/o euro update)
ibm-865                 IBM865 { IANA* } cp865 { MIME* } 865 csIBM865         # PC Nordic
ibm-808                 cp866 { MIME* } 866 csIBM866 # PC Russian (w/ euro update)
ibm-866                                             # PC Russian (w/o euro update)
ibm-868                 IBM868 { IANA* } cp868 { MIME* } cp-ar csIBM868 868   # PC Urdu
ibm-9061                cp869 { MIME* } 869 cp-gr csIBM869   # PC Greek (w/ euro update)
ibm-869                 IBM869 { IANA* }                     # PC Greek (w/o euro update)
ibm-878                 KOI8-R { IANA* MIME* } cp878 koi8 cskoi8r  # Russian internet
ibm-901                 cp921 { MIME* } 921 # PC Baltic (w/ euro update)
ibm-921                                     # PC Baltic (w/o euro update)
ibm-902                 cp922 { MIME* } 922 # PC Estonian (w/ euro update)
ibm-922                                     # PC Estonian (w/o euro update)
# ibm-941                 jis-208 jisx-208    # Pure DBCS jisx-208 # ibm-941 is not JISX 208 code page

ibm-5346                windows-1250 { IANA* } cp1250       # Windows Latin2 (w/ euro update)
ibm-5347                windows-1251 { IANA* } cp1251       # Windows Cyrillic (w/ euro update)
ibm-5348                windows-1252 { IANA* } cp1252       # Windows Latin1 (w/ euro update)
ibm-5349                windows-1253 { IANA* } cp1253       # Windows Greek (w/ euro update)
ibm-5350                windows-1254 { IANA* } cp1254       # Windows Turkish (w/ euro update)
ibm-5351                windows-1255 { IANA* } cp1255       # Windows Hebrew (w/ euro update)
ibm-5352                windows-1256 { IANA* } cp1256       # Windows Arabic (w/ euro update)
ibm-5353                windows-1257 { IANA* } cp1257       # Windows Baltic (w/ euro update)
ibm-5354                windows-1258 { IANA* } cp1258       # Windows Vietnamese (w/ euro update)
ibm-1250                # Windows Latin2 (w/o euro update)
ibm-1251                # Windows Cyrillic (w/o euro update)
ibm-1253                # Windows Greek (w/o euro update)
ibm-1254                # Windows Turkish (w/o euro update)
ibm-1255                # Windows Hebrew (w/o euro update)
ibm-1256                # Windows Arabic (w/o euro update)
ibm-1257                # Windows Baltic (w/o euro update)
ibm-1258                # Windows Vietnamese (w/o euro update)

ibm-1275                macintosh { IANA* } mac { MIME* } csMacintosh # Apple latin 1
ibm-1276                Adobe-Standard-Encoding { IANA* } csAdobeStandardEncoding # Different from ISO-Unicode-IBM-1276 (GCSGID: 1276)
ibm-1277                Adobe-Latin1-Encoding
ibm-1280                macgr                   # Apple Greek
ibm-1281                mactr                   # Apple Turkish
ibm-1282                macce                   # Apple Central Europe
ibm-1283                maccy                   # Apple Cyrillic

ibm-1051                hp-roman8 { IANA* } roman8 r8 csHPRoman8  # HP Latin1

ibm-806_P100-2000       ibm-806 ibm-806_VSUB    # PC ISCII-91: Indian Script Code
ibm-1006_P100-2000      ibm-1006 ibm-1006_VPUA  # Urdu
ibm-1006_X100-2000      ibm-1006_STD            # Urdu
ibm-1098_P100-2000      ibm-1098 ibm-1098_VSUB_VPUA # Farsi
ibm-1098_X100-2000      ibm-1098_VSUB           # Farsi
ibm-1124_P100-2000      ibm-1124 ibm-1124_STD   # ISO Cyrillic Ukraine
ibm-1125_P100-2000      ibm-1125 ibm-1125_VSUB  # Cyrillic Ukraine PC
ibm-1129_P100-2000      ibm-1129 ibm-1129_STD   # ISO Vietnamese
ibm-1131_P100-2000      ibm-1131 ibm-1131_VSUB  # Cyrillic Belarus PC
ibm-1133_P100-2000      ibm-1133 ibm-1133_STD   # ISO Lao
ibm-1381_P110-2000      ibm-1381 ibm-1381_VSUB_VPUA # S-Ch PC Data mixed (IBM GB) 
ibm-9066_P100-2000      ibm-9066 ibm-9066_VSUB  # Thai PC

# Added for more euro support

ibm-849                 cp1131          # PC     Belarus (w/ euro update)
ibm-848                 cp1125          # PC     Ukraine (w/ euro update)
ibm-5104                cp1008          # 8-bit Arabic (w/ euro update)
ibm-9238                cp1046          # PC     Arabic Extended (w/ euro update)
# ibm-5210                cp1114          # PC     SBCS Big-5 (w/ euro update)
# ibm-21427               cp947           # PC     DBCS Big-5 (w/ euro update)

# ibm-1046               # PC     Arabic without EURO

# EBCDIC codepages according to the CDRA

# without Euro
ibm-37                  IBM037 { IANA* } ibm-037 cpibm37 ebcdic-cp-us ebcdic-cp-ca ebcdic-cp-wt ebcdic-cp-nl csIBM037 cp37 cp037 037 # EBCDIC US
ibm-273                 IBM273 { IANA* } csIBM273 ebcdic-de cp273 cpibm273 273 # EBCDIC Germanay, Austria
ibm-277                 IBM277 { IANA* } EBCDIC-CP-DK EBCDIC-CP-NO csIBM277 ebcdic-dk cp277 cpibm277 277 # EBCDIC Denmark
ibm-278                 IBM278 { IANA* } ebcdic-cp-fi ebcdic-cp-se csIBM278 ebcdic-sv cp278 cpibm278 278 # EBCDIC Sweden
ibm-280                 IBM280 { IANA* } ebcdic-cp-it csIBM280 cp280 cpibm280 280 # EBCDIC Italy
ibm-284                 IBM284 { IANA* } ebcdic-cp-es csIBM284 cp284 cpibm284 284 # EBCDIC Spain
ibm-285                 IBM285 { IANA* } ebcdic-cp-gb csIBM285 ebcdic-gb cp285 cpibm285 285 # EBCDIC UK Ireland
ibm-290                 IBM290 { IANA* } EBCDIC-JP-kana csIBM290 cp290 # host SBCS (Katakana)
ibm-297                 IBM297 { IANA* } ebcdic-cp-fr csIBM297 cp297 cpibm297 297 # EBCDIC France
ibm-420                 IBM420 { IANA* } ebcdic-cp-ar1 csIBM420 cp420 420
ibm-424                 IBM424 { IANA* } ebcdic-cp-he csIBM424 cp424 424
ibm-500                 IBM500 { IANA* } cpibm500 csIBM500 cp500 ebcdic-cp-be ebcdic-cp-ch 500 # EBCDIC International Latin1
ibm-803                 cp803                # Old EBCDIC Hebrew
ibm-834                 cp834                # Korean DBCS Host
ibm-835                 cp835                # DBCS T-Ch Host
ibm-870_P100-2000       IBM870 { IANA* } ibm-870 CP870 ibm-870_STD ebcdic-cp-roece ebcdic-cp-yu csIBM870
ibm-871                 IBM871 { IANA* } ebcdic-cp-is csIBM871 cpibm871 cp871 871 # EBCDIC Iceland
ibm-875_P100-2000       ibm-875 cp875 875 ibm-875_STD 
ibm-918_P100-2000       IBM918 { IANA* } ibm-918 CP918 ibm-918_VPUA ebcdic-cp-ar2 csIBM918 
ibm-918_X100-2000       ibm-918_STD
ibm-930                 cp930 cpibm930 930 #ibm-5026 # EBCDIC_STATEFUL Katakana-Kanji Host Mixed. ibm-930 =? ibm-5026
ibm-933                 cp933 cpibm933 933   # Korea EBCDIC MIXED 
ibm-935                 cp935 cpibm935 935   # China EBCDIC MIXED 
ibm-937                 cp937 cpibm937 937   # Taiwan EBCDIC MIXED
ibm-939                 cp939 939 #ibm-5035   # EBCDIC_STATEFUL Latin-Kanji Host Mixed. ibm-939 =? ibm-5035
ibm-1025_P100-2000      ibm-1025 ibm-1025_STD
ibm-1026_P100-2000      IBM1026 { IANA* } ibm-1026 CP1026 csIBM1026 ibm-1026_STD
ibm-1047                cpibm1047            # EBCDIC Open systems Latin1
ibm-1097_P100-2000      ibm-1097 ibm-1097_VPUA
ibm-1097_X100-2000      ibm-1097_STD 
ibm-1112_P100-2000      ibm-1112 cp1112 1112 ibm-1112_STD
ibm-1122_P100-2000      ibm-1122 cp1122 1122 ibm-1122_STD
ibm-1130_P100-2000      ibm-1130 ibm-1130_STD
ibm-1132_P100-2000      ibm-1132 ibm-1132_STD
ibm-1137_P100-2000      ibm-1137 ibm-1137_STD
ibm-1388_P103-2001      ibm-1388             # S-Ch DBCS-Host Data GBK mixed MBCS
ibm-9030_P100-2000      ibm-9030 ibm-9030_STD

# with Euro
ibm-1123                cpibm1123            # EBCDIC Cyrillic Ukraine
ibm-1140                cpibm1140 IBM01140 { IANA* } # EBCDIC US
ibm-1141                cpibm1141 IBM01141 { IANA* } # EBCDIC Germanay,   Austria
ibm-1142                cpibm1142 IBM01142 { IANA* } # EBCDIC Denmark
ibm-1143                cpibm1143 IBM01143 { IANA* } # EBCDIC Sweden
ibm-1144                cpibm1144            # EBCDIC Italy
ibm-1145                cpibm1145            # EBCDIC Spain
ibm-1146                cpibm1146            # EBCDIC UK Ireland
ibm-1147                cpibm1147            # EBCDIC France
ibm-1148                cpibm1148            # EBCDIC International Latin1
ibm-1149                cpibm1149 ebcdic-is  # EBCDIC Iceland
ibm-1153                cpibm1153            # EBCDIC latin 2
ibm-1154                cp1025 cpibm1154     # EBCDIC Cyrillic Multilingual
ibm-1155                cpibm1155            # EBCDIC Turkey
ibm-1156                cpibm1156            # EBCDIC Baltic Multilingual
ibm-1157                cpibm1157            # EBCDIC Estonia
ibm-1158                cp1123 cpibm1158 1123    # EBCDIC Cyrillic Ukraine
ibm-1159                cp28709              # SBCS T-Ch Host
ibm-1160                cp9030 cpibm1160     # EBCDIC Thailand
ibm-1164                cp1130 cpibm1164     # EBCDIC Viet Nam
ibm-1364_P110-2000      ibm-1364 ibm-1364_VPUA cp1364    # Korean Host Mixed
ibm-1371                cpibm1371            # Taiwan EBCDIC MIXED
ibm-1390                cpibm1390            # Japan EBCDIC MIXED
ibm-1399                                     # Host MBCS (Latin-Kanji)
ibm-4899                cpibm4899            # Old EBCDIC Hebrew
ibm-4971                cpibm4971            # EBCDIC Greek
ibm-5123                cp1027               # Host Roman Jis
ibm-8482                                     # host SBCS (Katakana)
ibm-9027                                     # DBCS T-Ch Host
ibm-12712               cpibm12712 ebcdic-he # EBCDIC Hebrew (new sheqel, control charaters update)
ibm-16684               cp300                # DBCS Jis + Roman Jis Host
ibm-16804               cpibm16804 ebcdic-ar # EBCDIC Arabic

# unsupported IANA names
# ebcdic-it csEBCDICIT
# ebcdic-es csEBCDICES
# ebcdic-fr csEBCDICFR
# ibm-274   IBM274 { IANA* } cp274 csIBM274 ebcdic-be
# ibm-870   IBM870 { IANA* } ebcdic-cp-roece ebcdic-cp-yu csIBM870 cp870 870

# EBCDIC codepages for S/390, with LF and NL codes swapped

# without Euro
ibm-37-s390             ibm037-s390   # EBCDIC US
ibm-1047-s390           # EBCDIC for S/390 Open Edition

# with Euro 
ibm-1140-s390           # EBCDIC US
ebcdic-xml-us           # Yet another form of ibm-1140
ibm-1142-s390           # EBCDIC Denmark
ibm-1143-s390           # EBCDIC Sweden
ibm-1144-s390           # EBCDIC Italy
ibm-1145-s390           # EBCDIC Spain
ibm-1146-s390           # EBCDIC UK Ireland
ibm-1147-s390           # EBCDIC France
ibm-1148-s390           # EBCDIC International Latin1
ibm-1149-s390           # EBCDIC Iceland
ibm-1153-s390           # EBCDIC latin 2
ibm-12712-s390          # EBCDIC Hebrew
ibm-16804-s390          # EBCDIC Arabic

