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

#This is an alias file used by the character set converter
#format:
#Actual File Name || Algorithm name     alias1 alias2 ...
#except for column1(file names) case insensitive

# 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.isi.edu/in-notes/iana/assignments/character-sets

# Name matching is case-insensitive.
# 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.

# Algorithmic
UTF8                    UTF-8 ibm-1208 cp1208
UTF16_BigEndian         utf-16be
UTF16_LittleEndian      utf-16le
UTF16_PlatformEndian    iso-10646-ucs-2 csUnicode UTF-16 ibm-1200 cp1200 ucs-2
UTF16_OppositeEndian
LATIN_1                 ISO-8859-1 ibm-819 cp819 latin1 8859-1 csisolatin1 iso-ir-100 cp367 ISO_8859-1:1987 l1 ansi_x3.110-1983   #!!!!! There's whole lot of names for this
ISO_2022                ISO-2022 2022 cp2022
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

ibm-367                 ascii ascii-7 US-ASCII ansi_x3.4-1968 ansi_x3.4-1986 iso_646.irv:1991 iso646-us us csASCII 646

# Special mapping for S/390 new line characters
ebcdic-xml-us

# Interchange codepages
ibm-912                 ISO-8859-2 cp912 latin2 8859-2 csisolatin2 iso-ir-101 iso_8859-2:1987 l2 # Central Europe
ibm-913                 ISO-8859-3 latin3 cp913 8859-3 csisolatin3 iso-ir-109 iso_8859-3:1988 l3 # Maltese Esperanto
ibm-914                 ISO-8859-4 latin4 cp914 8859-4 csisolatin4 iso-ir-110 iso_8859-4:1988 l4 # Baltic
ibm-915                 ISO-8859-5 cyrillic cp915 8859-5 csisolatincyrillic iso-ir-144 iso_8859-5:1988 # Cyrillic
ibm-1089                ISO-8859-6 arabic cp1089 8859-6 csisolatinarabic iso-ir-127 iso_8859-6:1987 ecma-114 asmo-708   # Arabic
ibm-4909                cp813 ISO-8859-7 greek greek8 elot_928 ecma-118 8859-7 csisolatingreek iso-ir-126 iso_8859-7:1987  # ISO Greek (w/ euro update)
ibm-813                 # same as 4909 (w/o euro update)
ibm-916                 ISO-8859-8 hebrew cp916 8859-8 csisolatinhebrew iso-ir-138 iso_8859-8:1988   # hebrew iso-8859-8i - typo?
ibm-920                 ISO-8859-9 ECMA-128 latin5 cp920 8859-9 csisolatin5 iso-ir-148 l5 # Turkish
ibm-923                 ISO-8859-15 latin9 cp923 8859-15 latin0 csisolatin0 csisolatin9       # Latin 9
ibm-1252                windows-1252  cp1252  ibm-1004 cp1004        # Windows Latin 1 We don't have an ibm-5348, so this is a best possible match
ibm-943                 Shift_JIS csWindows31J sjis cp943 cp932 ms_kanji csshiftjis windows-31j  x-sjis  # 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-949                 KS_C_5601-1987 iso-ir-149 KS_C_5601-1989 csKSC56011987 KSC_5601 johab ks_x_1001:1992       # KSC-5601-1992, korean
ibm-1370                Big5 csBig5 x-big5 cp950                # Taiwan Big-5 (w/ euro update)
ibm-950                 # Taiwan Big-5 
ibm-1386                GB_2312-80 iso-ir-58 csISO58GB231280 gbk chinese gb gb2312 gb2312-1980 cp936 zh_cn # Chinese GBK removed
ibm-5050                EUC-JP ibm-eucJP eucjis extended_unix_code_packed_format_for_japanese cseuckdfmtjapanese X-EUC-JP  # Japan EUC
ibm-970                 EUC-KR ibm-eucKR csEUCKR                       # Korean EUC
ibm-964                 EUC-TW ibm-eucTW cns11643              # Taiwan EUC
ibm-1383                EUC-CN ibm-eucCN                       # China EUC
#ibm-1162               tis-620 cp874 windows-874 ms874       # Thai (w/ euro support) #what is the connection between this and the one below!!!
ibm-874                 ibm-1161 #same as 1162 (w/o euro update) ***This is commented out in Helena's

lmb-excp                # special exceptions list for LMBCS algorithm

# Platform codepages
ibm-437                 cp437 csPC8CodePage437 437         # PC US
# HSYS:
ibm-850                 cp850 850 csPC850Multilingual    # PC latin1
ibm-851                 cp851 851 csPC851           # PC DOS Greek (no euro)
ibm-858                 cp858  # PC latin1 with Euro cp850 removed
ibm-9044                852 csPCp852 cp852            # PC latin2 (w/ euro update) #where should the names go here or below - inconsistency!!!
ibm-852                 # PC latin2 (w/o euro update)
ibm-872                 855 csIBM855 cp855            # PC cyrillic (w/ euro update) #where should the names go here or below - inconsistency!!!
ibm-855                 # PC cyrillic (w/o euro update)
ibm-856                 cp856            # PC Hebrew (old)
ibm-9049                857 csIBM857 cp857            # PC Latin 5 (Turkish) (w/ euro update) #where should the names go here or below - inconsistency!!!
ibm-857                 # PC Latin 5 (w/o euro update)
ibm-859                 cp859            # PC Latin 9 (w/ euro update)
ibm-860                 cp860 860 csIBM860            # PC Portugal
ibm-861                 cp861 861 cp-is csIBM861           # PC Iceland
ibm-867                 cp867 862 cp862 cspc862latinhebrew # PC Hebrew (w/ euro update) #where should the names go here or below - inconsistency!!!
ibm-862                 # PC Hebrew (w/o euro update)
ibm-863                 cp863 863 csIBM863           # PC Canadian French
ibm-17248               cp864 csIBM864            # PC Arabic (w/ euro update) #where should the names go here or below - inconsistency!!!
ibm-864                 # PC Arabic (w/o euro update)
ibm-865                 cp865 865 csIBM865            # PC Nordic
ibm-808                 cp866 866 csIBM866     # PC Russian (w/ euro update) #where should the names go here or below - inconsistency!!! put IBM866 cp866 866 csIBM866 down
ibm-866                 # PC Russian (w/o euro update) added IBM866 cp866 866 csIBM866
ibm-868                 cp868 cp-ar csIBM868            # PC Urdu
ibm-9061                869 cp-gr csIBM869 cp869            # PC Greek (w/ euro update)
ibm-869                 # PC Greek (w/o euro update)
ibm-878                 koi8-r cp878 koi8 cskoi8r  # Russian internet
ibm-901                 cp921 # PC Baltic (w/ euro update) moved cp921 down
ibm-921                 # PC Baltic (w/o euro update) from above
ibm-902                 cp922 # PC Estonian (w/ euro update) moved cp922 down
ibm-922                 # PC Estonian (w/o euro update) from above
ibm-942                 shift_jis78 sjis78 ibm-932    # Old s_jis ibm-932 added!
ibm-1038                Adobe-Symbol-Encoding csHPPSMath symbol
ibm-5346                windows-1250  cp1250    # Windows Latin2 (w/ euro update)
ibm-5347                windows-1251  cp1251    # Windows Cyrillic (w/ euro update)
ibm-5349                windows-1253  cp1253    # Windows Greek (w/ euro update)
ibm-5350                windows-1254  cp1254    # Windows Turkish (w/ euro update)
ibm-5351                windows-1255  cp1255    # Windows Hebrew (w/ euro update)
ibm-5352                windows-1256  cp1256    # Windows Arabic (w/ euro update)
ibm-5353                windows-1257  cp1257    # Windows Baltic (w/ euro update)
ibm-5354                windows-1258  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 mac csMacintosh          # Apple latin 1
ibm-1276                Adobe-Standard-Encoding csAdobeStandardEncoding
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 roman8 r8 csHPRoman8  # HP Latin1

# 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-1161              cp9066          # PC Thailand (IBM "version) (w/ euro update)
ibm-1362               cp1362          # Korean Windows DBCS (w/ euro update)
ibm-1363               cp1363 cp949 ksc korean # Korean KSC Korean Windows MBCS (w/ euro update)
ibm-5210               cp1114          # PC SBCS Big-5 (w/ euro update)
ibm-21427              cp947           # PC DBCS Big-5 (w/ euro update)

# EBCDIC codepages according to the CDRA

# without Euro
ibm-37                 ibm-037 cpibm37 ebcdic-cp-ca ebcdic-cp-wt ebcdic-cp-nl csIBM037 cp37 ebcdic-cp-us cp037 # EBCDIC US
ibm-273                csIBM273 ebcdic-de cp273 cpibm273 # EBCDIC Germanay, Austria...
ibm-277                EBCDIC-CP-DK EBCDIC-CP-NO csIBM277 ebcdic-dk  cp277 cpibm277 # EBCDIC Denmark...
ibm-278                ebcdic-cp-fi ebcdic-cp-se csIBM278 ebcdic-sv  cp278 cpibm278 # EBCDIC Sweden
ibm-280                ebcdic-cp-it csIBM280 cp280 cpibm280 # EBCDIC Italy
ibm-284                ebcdic-cp-es csIBM284 cp284 cpibm284 # EBCDIC Spain
ibm-285                ebcdic-cp-gb csIBM285 ebcdic-gb cp285 cpibm285 # EBCDIC UK Ireland
ibm-290                EBCDIC-JP-kana csIBM290 cp290 # host SBCS (Katakana)
ibm-297                ebcdic-cp-fr csIBM297 cp297 cpibm297 # EBCDIC France
ibm-420                ebcdic-cp-ar1 csIBM420 cp420
ibm-424                ebcdic-cp-he csIBM424 cp424
ibm-500                cpibm500 csIBM500 cp500 ebcdic-cp-be ebcdic-cp-ch # EBCDIC International Latin1
ibm-803                cp803 # Old EBCDIC Hebrew
ibm-834                cp834 # Korean DBCS Host
ibm-835                cp835 # DBCS T-Ch Host
ibm-871                ebcdic-cp-is csIBM871 cpibm871 cp871 # EBCDIC Iceland
ibm-930                cp930 cpibm930   # Japan EBCDIC MIXED
ibm-933                cp933 cpibm933           # Korea EBCDIC MIXED 
ibm-935                cp935 cpibm935           # China EBCDIC MIXED 
ibm-937                cp937 cpibm937 # Taiwan EBCDIC MIXED
ibm-939                cp939 # Host MBCS (Latin-Kanji)
#ibm-1046              # PC Arabic without EURO
# with Euro
ibm-1390               cpibm1390 # Japan EBCDIC MIXED
ibm-1371               cpibm1371 # Taiwan EBCDIC MIXED
ibm-1047               cpibm1047 # EBCDIC Open systems Latin1
ibm-1123               cpibm1123 # Cyrillic Ukraine EBCDIC
ibm-1140               cpibm1140 # EBCDIC US...
ibm-1141               cpibm1141 # EBCDIC Germanay, Austria...
ibm-1142               cpibm1142 # EBCDIC Denmark...
ibm-1143               cpibm1143 # 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               IBM1026 csIBM1026 cp1026 cpibm1155       # EBCDIC Turkey
ibm-1156               cp1112 cpibm1156                         # EBCDIC Baltic Multilingual
ibm-1157               cp1122 cpibm1157                         # EBCDIC Estonia
ibm-1158               cp1123 cpibm1158                         # Cyrillic Ukraine EBCDIC
ibm-1159               cp28709         # SBCS T-Ch Host
ibm-1160               cp9030 cpibm1160                         # EBCDIC Thailand
ibm-1164               cp1130 cpibm1164                         # EBCDIC Viet Nam

ibm-1399               # Host MBCS (Latin-Kanji)
ibm-4930               cp4930 # Korean DBCS Host
ibm-1364               cp1364 # Korean Host Mixed
ibm-8482               # host SBCS (Katakana)
ibm-4899               cpibm4899                          # Old EBCDIC Hebrew
ibm-4971               cp875 cpibm4971                          # EBCDIC Greek
ibm-9027               # DBCS T-Ch Host
ibm-5123               cp1027          # Host Roman Jis
ibm-12712              cpibm12712 ebcdic-he # EBCDIC Hebrew (new sheqel, control charaters update)
ibm-16684              cp300           # Jis + Roman Jis Host
ibm-16804              cpibm16804 ebcdic-ar # EBCDIC Arabic

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

# 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
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

