# *******************************************************************************
# *
# *   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 utf8 ibm-1208 utf_8 ibm1208 cp1208
UTF16_BigEndian         utf-16be
UTF16_LittleEndian      utf-16le
UTF16_PlatformEndian    iso-10646-ucs-2 csUnicode utf16 utf-16 ibm-1200 ibm1200 cp1200 ucs-2
UTF16_OppositeEndian
LATIN_1                 iso-8859-1 iso_8859-1 ibm-819 ibm819 cp819 latin1 latin-1  8859-1 csisolatin1 iso-ir-100 iso_8859-1:1978 cp367 ibm367 iso-8859-1:1987 l1 iso_8859_1 ansi_x3.110-1983 iso8859-1   #!!!!! There's whole lot of names for this
ISO_2022                iso-2022 2022 cp2022 iso2022 iso_2022
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 usascii ascii ascii-7 us-ascii usascii 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 iso_8859-2 iso8859-2 ibm912 cp912 latin2 8859-2 csisolatin2 iso-ir-101 iso_8859-2:1987 l2 # Central Europe
ibm-913                 iso-8859-3 iso_8859-3 iso8859-3 latin3 cp913 ibm913 8859-3 csisolatin3 iso-ir-109 iso_8859-3:1988 l3 # Maltese Esperanto
ibm-914                 iso-8859-4 iso_8859-4 iso8859-4 latin4 cp914 ibm914 8859-4 csisolatin4 iso-ir-110 iso_8859-4:1988 l4 # Baltic
ibm-915                 iso-8859-5 iso_8859-5 iso8859-5 cyrillic cp915 ibm915 8859-5 csisolatincyrillic iso-ir-144 iso_8859-5:1988 # Cyrillic
ibm-1089                iso-8859-6 iso_8859-6 iso8859-6 arabic cp1089 ibm1089 8859-6 csisolatinarabic iso-ir-127 iso_8859-6:1987 ecma-114 asmo-708   # Arabic
ibm-4909                cp813 iso-8859-7 iso_8859-7 iso8859-7 ibm813 cp813 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 iso_8859-8 iso8859-8 hebrew cp916 ibm916 8859-8 csisolatinhebrew iso-ir-138 iso_8859-8:1988   # hebrew iso-8859-8i - typo?
ibm-920                 iso-8859-9 iso_8859-9 iso8859-9 ECMA-128 latin5 cp920 ibm920 8859-9 csisolatin5 iso-ir-148 l5 # Turkish
ibm-923                 iso-8859-15 iso_8859-15 iso8859-15 latin9 cp923 ibm923 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 shiftjis shift-jis ibm943 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 korean ibm949 ksc-5601 ksc_5601 johab ks_x_1001:1992       # KSC-5601-1992, korean
ibm-1370                Big5 csBig5 big-5 x-big5 cp950                # Taiwan Big-5 (w/ euro update)
ibm-950                 # Taiwan Big-5 
ibm-1386                gb_2312-80 iso-ir-58 csISO58GB231280 gb2312-80 gbk chinese gb ibm1386 gb2312  gb2312-1980 cp936 zh_cn # Chinese GBK removed
#ibm-954                euc-jp eucJP ibm-eucJP eucjis extended_unix_code_packed_format_for_japanese cseuckdfmtjapanese x-euc-jp x-eucjp  # Japan EUC Why is this one commented!!!
ibm-970                 euc-kr euckr ibm-eucKR csEUCKR                       # Korean EUC
#ibm-964                euc-tw euctw ibm-eucTW cns11643              # Taiwan EUC
ibm-1361                cp949 ksc korean                              # Korean KSC
ibm-1383                euc-cn euccn 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                 ibm437 cp437 csPC8CodePage437 437         # PC US
# HSYS:
ibm-850                 IBM850 cp850 850 csPC850Multilingual    # PC latin1
ibm-851                 IBM851 cp851 851 csPC851           # PC DOS Greek (no euro)
ibm-858                 ibm858 cp858  # PC latin1 with Euro cp850 removed
ibm-9044                IBM852 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                 IBM855 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                 ibm856 cp856            # PC Hebrew (old)
ibm-9049                IBM857 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                 ibm859 cp859            # PC Latin 9 (w/ euro update)
ibm-860                 ibm860 cp860 860 csIBM860            # PC Portugal
ibm-861                 ibm861 cp861 861 cp-is csIBM861           # PC Iceland
ibm-867                 ibm867 cp867 862 cp862 cspc862latinhebrew # PC Hebrew (w/ euro update) #where should the names go here or below - inconsistency!!!
ibm-862                 IBM862 # PC Hebrew (w/o euro update)
ibm-863                 ibm863 cp863 863 csIBM863           # PC Canadian French
ibm-17248               IBM864 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                 ibm865 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                 IBM866 # PC Russian (w/o euro update) added IBM866 cp866 866 csIBM866
ibm-868                 ibm868 cp868 cp-ar csIBM868            # PC Urdu
ibm-9061                IBM869 869 cp-gr csIBM869 cp869            # PC Greek (w/ euro update)
ibm-869                 # PC Greek (w/o euro update)
ibm-878                 koi8-r ibm878 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 ibm932    # 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          # 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                 IBM037 ibm-037 cpibm37 ebcdic-cp-ca ebcdic-cp-wt ebcdic-cp-nl csIBM037 cp37 ebcdic-cp-us cp037 # EBCDIC US
ibm-273                IBM273 csIBM273 ebcdic-de cp273 cpibm273 # EBCDIC Germanay, Austria...
ibm-277                IBM277 EBCDIC-CP-DK EBCDIC-CP-NO csIBM277 ebcdic-dk  cp277 cpibm277 # EBCDIC Denmark...
ibm-278                IBM278 ebcdic-cp-fi ebcdic-cp-se csIBM278 ebcdic-sv  cp278 cpibm278 # EBCDIC Sweden
ibm-280                IBM280 ebcdic-cp-it csIBM280 cp280 cpibm280 # EBCDIC Italy
ibm-284                IBM284 ebcdic-cp-es csIBM284 cp284 cpibm284 # EBCDIC Spain
ibm-285                IBM285 ebcdic-cp-gb csIBM285 ebcdic-gb cp285 cpibm285 # EBCDIC UK Ireland
ibm-290                IBM290 EBCDIC-JP-kana csIBM290 cp290 # host SBCS (Katakana)
ibm-297                IBM297 ebcdic-cp-fr csIBM297 cp297 cpibm297 # EBCDIC France
ibm-420                IBM420 ebcdic-cp-ar1 csIBM420 ibm-420 cp420
ibm-424                IBM424 ebcdic-cp-he csIBM424 cp424 ibm-424
ibm-500                IBM500 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                IBM871 ebcdic-cp-is csIBM871 cpibm871 cp871 # EBCDIC Iceland
ibm-930                cp930 cpibm930   # Japan EBCDIC MIXED
ibm-933                ibm933 cp933 cpibm933           # Korea EBCDIC MIXED 
ibm-935                ibm935 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 ibm1140 # EBCDIC US...
ibm-1141               cpibm1141 ibm1141 # EBCDIC Germanay, Austria...
ibm-1142               cpibm1142 ibm1142 # EBCDIC Denmark...
ibm-1143               cpibm1143 ibm1143 # EBCDIC Sweden
ibm-1144               cpibm1144 ibm1144 # EBCDIC Italy
ibm-1145               cpibm1145 ibm1145 # EBCDIC Spain
ibm-1146               cpibm1146 ibm1146 # EBCDIC UK Ireland
ibm-1147               cpibm1147 ibm1147 # EBCDIC France
ibm-1148               cpibm1148 ibm1148 # EBCDIC International Latin1
ibm-1149               cpibm1149 ibm1149 ebcdic-is # EBCDIC Iceland
ibm-1153               cpibm1153 ibm1153 # 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-1159               cp28709         # SBCS T-Ch Host
ibm-9027               # DBCS T-Ch Host
ibm-5123               cp1027          # Host Roman Jis
ibm-12712              cpibm12712 ibm12712 ebcdic-he # EBCDIC Hebrew (new sheqel, control charaters update)
ibm-16684              cp300           # Jis + Roman Jis Host
ibm-16804              cpibm16804 ibm16804 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      ibm1047-s390  # EBCDIC for S/390 Open Edition

# with Euro
ibm-1140-s390      ibm1140-s390  # EBCDIC US
ibm-1142-s390      ibm1142-s390  # EBCDIC Denmark
ibm-1143-s390      ibm1143-s390  # EBCDIC Sweden
ibm-1144-s390      ibm1144-s390  # EBCDIC Italy
ibm-1145-s390      ibm1145-s390  # EBCDIC Spain
ibm-1146-s390      ibm1146-s390  # EBCDIC UK Ireland
ibm-1147-s390      ibm1147-s390  # EBCDIC France
ibm-1148-s390      ibm1148-s390  # EBCDIC International Latin1
ibm-1149-s390      ibm1149-s390  # EBCDIC Iceland
ibm-1153-s390      ibm1153-s390  # EBCDIC latin 2
ibm-12712-s390     ibm12712-s390 # EBCDIC Hebrew
ibm-16804-s390     ibm16804-s390 # EBCDIC Arabic

