sys-file-encoding: Automatically generate the .c file at build time.
authorBen Pfaff <blp@cs.stanford.edu>
Mon, 6 Sep 2021 17:07:41 +0000 (10:07 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 6 Sep 2021 17:08:46 +0000 (10:08 -0700)
Suggested by John Darrington.

src/data/automake.mk
src/data/convrtrs.txt [new file with mode: 0644]
src/data/sys-file-encoding.c [deleted file]
src/data/sys-file-encoding.pl

index 50ac40c4e57aea7dafb14e65e3dd5efe6d2bfba7..e5d40bf7fbe2dc33108d737bf14d95d74afc3bb0 100644 (file)
@@ -118,7 +118,6 @@ src_data_libdata_la_SOURCES = \
        src/data/spreadsheet-reader.h \
        src/data/subcase.c \
        src/data/subcase.h \
-       src/data/sys-file-encoding.c \
        src/data/sys-file-private.c \
        src/data/sys-file-private.h \
        src/data/sys-file-reader.c \
@@ -137,4 +136,9 @@ src_data_libdata_la_SOURCES = \
        src/data/vector.c \
        src/data/vector.h
 
-EXTRA_DIST += src/data/sys-file-encoding.pl
+nodist_src_data_libdata_la_SOURCES = src/data/sys-file-encoding.c
+src/data/sys-file-encoding.c: \
+       src/data/sys-file-encoding.pl \
+       src/data/convrtrs.txt
+       $(AM_V_GEN)$(PERL) $^ > $@.tmp && mv $@.tmp $@
+EXTRA_DIST += src/data/sys-file-encoding.pl src/data/convrtrs.txt
diff --git a/src/data/convrtrs.txt b/src/data/convrtrs.txt
new file mode 100644 (file)
index 0000000..4aaa592
--- /dev/null
@@ -0,0 +1,1269 @@
+# Copyright (C) 2016 and later: Unicode, Inc. and others.
+# License & terms of use: http://www.unicode.org/copyright.html
+# ******************************************************************************
+# *
+# *   Copyright (C) 1995-2014, International Business Machines
+# *   Corporation and others.  All Rights Reserved.
+# *
+# ******************************************************************************
+
+# If this converter alias table looks very confusing, a much easier to
+# understand view can be found at this demo:
+# http://demo.icu-project.org/icu-bin/convexp
+
+# IMPORTANT NOTE
+#
+# This file is not read directly by ICU. If you change it, you need to
+# run gencnval, and eventually run pkgdata to update the representation that
+# ICU uses for aliases. The gencnval tool will normally compile this file into
+# cnvalias.icu. The gencnval -v verbose option will help you when you edit
+# this file.
+
+# Please be friendly to the rest of us that edit this table by
+# keeping this table free of tabs.
+
+# This is an alias file used by the character set converter.
+# A lot of converter information can be found in unicode/ucnv.h, but here
+# is more information about this file.
+# 
+# If you are adding a new converter to this list and want to include it in the
+# icu data library, please be sure to add an entry to the appropriate ucm*.mk file
+# (see ucmfiles.mk for more information).
+# 
+# Here is the file format using BNF-like syntax:
+#
+# converterTable ::= tags { converterLine* }
+# converterLine ::= converterName [ tags ] { taggedAlias* }'\n'
+# taggedAlias ::= alias [ tags ]
+# tags ::= '{' { tag+ } '}'
+# tag ::= standard['*']
+# converterName ::= [0-9a-zA-Z:_'-']+
+# alias ::= converterName
+#
+# Except for the converter name, aliases are case insensitive.
+# Names are separated by whitespace.
+# Line continuation and comment sytax are similar to the GNU make syntax.
+# Any lines beginning with whitespace (e.g. U+0020 SPACE or U+0009 HORIZONTAL
+# TABULATION) are presumed to be a continuation of the previous line.
+# The # symbol starts a comment and the comment continues till the end of
+# the line.
+#
+# The converter
+#
+# 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().
+#
+# The complete list of recognized tags used in this file is defined in
+# the affinity list near the beginning of the file.
+#
+# 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 a charset name can be difficult.
+# Many of these applications and operating systems will update
+# their codepages over time.
+
+# It means that a new codepage, 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 codepage 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).
+
+# 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
+# It should also be mentioned that the exact mapping table used for each
+# IANA names usually isn't specified. This means that some other applications
+# and operating systems are left to interpret the exact mappings for the
+# underspecified aliases. For instance, Shift-JIS on a Solaris platform
+# may be different from Shift-JIS on a Windows platform. This is why
+# some of the aliases can be tagged to differentiate different mapping
+# tables with the same alias. If an alias is given to more than one converter,
+# it is considered to be an ambiguous alias, and the affinity list will
+# choose the converter to use when a standard isn't specified with the alias.
+
+# Name matching is case-insensitive. Also, dashes '-', underscores '_'
+# and spaces ' ' are ignored in names (thus cs-iso_latin-1, csisolatin1
+# and "cs iso latin 1" 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.
+# For example, the converter ibm-921 is expected to be the file ibm-921.cnv.
+
+
+
+# The immediately following list is the affinity 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 ordering of the aliases
+# after this affinity list does not affect the preferred alias, but it may
+# affect the order of the returned list of aliases for a given converter.
+#
+# The general ordering is from specific and frequently used to more general
+# or rarely used at the bottom.
+{   UTR22           # Name format specified by https://www.unicode.org/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 windows-*. The rest are recognized IE names.
+    JAVA            # Source: Sun JDK. 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 (From the IMultiLanguage COM interface)
+    # 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* JAVA* WINDOWS }
+                                ibm-1208 { IBM* } # UTF-8 with IBM PUA
+                                ibm-1209 { IBM }  # UTF-8
+                                ibm-5304 { IBM }  # Unicode 2.0, UTF-8 with IBM PUA
+                                ibm-5305 { IBM }  # Unicode 2.0, UTF-8
+                                ibm-13496 { IBM } # Unicode 3.0, UTF-8 with IBM PUA
+                                ibm-13497 { IBM } # Unicode 3.0, UTF-8
+                                ibm-17592 { IBM } # Unicode 4.0, UTF-8 with IBM PUA
+                                ibm-17593 { IBM } # Unicode 4.0, UTF-8
+                                windows-65001 { WINDOWS* }
+                                cp1208
+                                x-UTF_8J
+                                unicode-1-1-utf-8
+                                unicode-2-0-utf-8
+
+# The ICU 2.2 UTF-16/32 converters detect and write a BOM.
+UTF-16 { IANA* MIME* JAVA* }    ISO-10646-UCS-2 { IANA }
+                                ibm-1204 { IBM* } # UTF-16 with IBM PUA and BOM sensitive
+                                ibm-1205 { IBM }  # UTF-16 BOM sensitive
+                                unicode
+                                csUnicode
+                                ucs-2
+# The following Unicode CCSIDs (IBM) are not valid in ICU because they are
+# considered pure DBCS (exactly 2 bytes) of Unicode,
+# and they are a subset of Unicode. ICU does not support their encoding structures.
+# 1400 1401 1402 1410 1414 1415 1446 1447 1448 1449 64770 64771 65520 5496 5497 5498 9592 13688
+UTF-16BE { IANA* MIME* JAVA* }  x-utf-16be { JAVA }
+                                UnicodeBigUnmarked { JAVA } # java.io name
+                                ibm-1200 { IBM* } # UTF-16 BE with IBM PUA
+                                ibm-1201 { IBM }  # UTF-16 BE
+                                ibm-13488 { IBM } # Unicode 2.0, UTF-16 BE with IBM PUA
+                                ibm-13489 { IBM } # Unicode 2.0, UTF-16 BE
+                                ibm-17584 { IBM } # Unicode 3.0, UTF-16 BE with IBM PUA
+                                ibm-17585 { IBM } # Unicode 3.0, UTF-16 BE
+                                ibm-21680 { IBM } # Unicode 4.0, UTF-16 BE with IBM PUA
+                                ibm-21681 { IBM } # Unicode 4.0, UTF-16 BE
+                                ibm-25776 { IBM } # Unicode 4.1, UTF-16 BE with IBM PUA
+                                ibm-25777 { IBM } # Unicode 4.1, UTF-16 BE
+                                ibm-29872 { IBM } # Unicode 5.0, UTF-16 BE with IBM PUA
+                                ibm-29873 { IBM } # Unicode 5.0, UTF-16 BE
+                                ibm-61955 { IBM } # UTF-16BE with Gaidai University (Japan) PUA
+                                ibm-61956 { IBM } # UTF-16BE with Microsoft HKSCS-Big 5 PUA
+                                windows-1201 { WINDOWS* }
+                                cp1200
+                                cp1201
+                                UTF16_BigEndian
+                                # ibm-5297 { IBM }  # Unicode 2.0, UTF-16 (BE) (reserved, never used)
+                                # iso-10646-ucs-2 { JAVA } # This is ambiguous
+                                # ibm-61952 is not a valid CCSID because it's Unicode 1.1
+                                # ibm-61953 is not a valid CCSID because it's Unicode 1.0
+UTF-16LE { IANA* MIME* JAVA* }  x-utf-16le { JAVA }
+                                UnicodeLittleUnmarked { JAVA } # java.io name
+                                ibm-1202 { IBM* } # UTF-16 LE with IBM PUA
+                                ibm-1203 { IBM }  # UTF-16 LE
+                                ibm-13490 { IBM } # Unicode 2.0, UTF-16 LE with IBM PUA
+                                ibm-13491 { IBM } # Unicode 2.0, UTF-16 LE
+                                ibm-17586 { IBM } # Unicode 3.0, UTF-16 LE with IBM PUA
+                                ibm-17587 { IBM } # Unicode 3.0, UTF-16 LE
+                                ibm-21682 { IBM } # Unicode 4.0, UTF-16 LE with IBM PUA
+                                ibm-21683 { IBM } # Unicode 4.0, UTF-16 LE
+                                ibm-25778 { IBM } # Unicode 4.1, UTF-16 LE with IBM PUA
+                                ibm-25779 { IBM } # Unicode 4.1, UTF-16 LE
+                                ibm-29874 { IBM } # Unicode 5.0, UTF-16 LE with IBM PUA
+                                ibm-29875 { IBM } # Unicode 5.0, UTF-16 LE
+                                UTF16_LittleEndian
+                                windows-1200 { WINDOWS* }
+
+UTF-32 { IANA* MIME* }          ISO-10646-UCS-4 { IANA }
+                                ibm-1236 { IBM* } # UTF-32 with IBM PUA and BOM sensitive
+                                ibm-1237 { IBM }  # UTF-32 BOM sensitive
+                                csUCS4
+                                ucs-4
+UTF-32BE { IANA* }              UTF32_BigEndian
+                                ibm-1232 { IBM* } # UTF-32 BE with IBM PUA
+                                ibm-1233 { IBM }  # UTF-32 BE
+                                ibm-9424 { IBM }  # Unicode 4.1, UTF-32 BE with IBM PUA
+UTF-32LE { IANA* }              UTF32_LittleEndian
+                                ibm-1234 { IBM* } # UTF-32 LE, with IBM PUA
+                                ibm-1235 { IBM }  # UTF-32 LE
+
+# ICU-specific names for special uses
+UTF16_PlatformEndian
+UTF16_OppositeEndian
+
+UTF32_PlatformEndian
+UTF32_OppositeEndian
+
+
+# Java-specific, non-Unicode-standard UTF-16 variants.
+# These are in the Java "Basic Encoding Set (contained in lib/rt.jar)".
+# See the "Supported Encodings" at
+# http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html
+# or a newer version of this document.
+#
+# Aliases marked with { JAVA* } are canonical names for java.io and java.lang APIs.
+# Aliases marked with { JAVA } are canonical names for the java.nio API.
+#
+# "BOM" means the Unicode Byte Order Mark, which is the encoding-scheme-specific
+# byte sequence for U+FEFF.
+# "Reverse BOM" means the BOM for the sibling encoding scheme with the
+# opposite endianness. (LE<->BE)
+
+# "Sixteen-bit Unicode (or UCS) Transformation Format, big-endian byte order,
+# with byte-order mark"
+#
+# From Unicode: Writes BOM.
+# To Unicode: Detects and consumes BOM. 
+#   If there is a "reverse BOM", Java throws
+#   MalformedInputException: Incorrect byte-order mark.
+#   In this case, ICU4C sets a U_ILLEGAL_ESCAPE_SEQUENCE UErrorCode value
+#   and a UCNV_ILLEGAL UConverterCallbackReason.
+UTF-16BE,version=1             UnicodeBig { JAVA* }
+
+# "Sixteen-bit Unicode (or UCS) Transformation Format, little-endian byte order,
+# with byte-order mark"
+#
+# From Unicode: Writes BOM.
+# To Unicode: Detects and consumes BOM. 
+#   If there is a "reverse BOM", Java throws
+#   MalformedInputException: Incorrect byte-order mark.
+#   In this case, ICU4C sets a U_ILLEGAL_ESCAPE_SEQUENCE UErrorCode value
+#   and a UCNV_ILLEGAL UConverterCallbackReason.
+UTF-16LE,version=1             UnicodeLittle { JAVA* }  x-UTF-16LE-BOM { JAVA }
+
+# This one is not mentioned on the "Supported Encodings" page
+# but is available in Java.
+# In Java, this is called "Unicode" but we cannot give it that alias
+# because the standard UTF-16 converter already has a "unicode" alias.
+#
+# From Unicode: Writes BOM.
+# To Unicode: Detects and consumes BOM.
+#   If there is no BOM, rather than defaulting to BE, Java throws
+#   MalformedInputException: Missing byte-order mark.
+#   In this case, ICU4C sets a U_ILLEGAL_ESCAPE_SEQUENCE UErrorCode value
+#   and a UCNV_ILLEGAL UConverterCallbackReason.
+UTF-16,version=1
+
+# This is the same as standard UTF-16 but always writes a big-endian byte stream,
+# regardless of the platform endianness, as expected by the Java compatibility tests.
+# See the java.nio.charset.Charset API documentation at
+# http://java.sun.com/javase/6/docs/api/java/nio/charset/Charset.html
+# or a newer version of this document.
+#
+# From Unicode: Write BE BOM and BE bytes
+# To Unicode: Detects and consumes BOM. Defaults to BE.
+UTF-16,version=2
+
+# Note: ICU does not currently support Java-specific, non-Unicode-standard UTF-32 variants.
+# Presumably, these behave analogously to the UTF-16 variants with similar names.
+# UTF_32BE_BOM  x-UTF-32BE-BOM
+# UTF_32LE_BOM  x-UTF-32LE-BOM
+
+# End of Java-specific, non-Unicode-standard UTF variants.
+
+
+# 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");
+#
+# For details about email headers see RFC 2047.
+UTF-7 { IANA* MIME* WINDOWS }   windows-65000 { WINDOWS* }
+                                unicode-1-1-utf-7
+                                unicode-2-0-utf-7
+
+# UTF-EBCDIC doesn't exist in ICU, but the aliases are here for reference.
+#UTF-EBCDIC ibm-1210 { IBM* } ibm-1211 { IBM }
+
+# IMAP-mailbox-name is an ICU-specific name for the encoding of IMAP mailbox names.
+# It is a substantially modified UTF-7 encoding. See the specification in:
+#
+# RFC 2060: INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1
+# (http://www.ietf.org/rfc/rfc2060.txt)
+# Section 5.1.3.  Mailbox International Naming Convention
+IMAP-mailbox-name
+
+SCSU { IANA* }
+    ibm-1212 { IBM }  # SCSU with IBM PUA
+    ibm-1213 { IBM* } # SCSU
+BOCU-1 { IANA* }
+    csBOCU-1 { IANA }
+    ibm-1214 { IBM }  # BOCU-1 with IBM PUA
+    ibm-1215 { IBM* } # BOCU-1
+
+# See https://www.unicode.org/reports/tr26 for this Compatibility Encoding Scheme for UTF-16
+# The Unicode Consortium does not encourage the use of CESU-8
+CESU-8 { IANA* } ibm-9400 { IBM* }
+
+# Standard iso-8859-1, which does not have the Euro update.
+# See iso-8859-15 (latin9) for the Euro update
+ISO-8859-1 { MIME* IANA JAVA* }
+    ibm-819 { IBM* JAVA }    # This is not truely ibm-819 because it's missing the fallbacks.
+    IBM819 { IANA }
+    cp819 { IANA JAVA }
+    latin1 { IANA JAVA }
+    8859_1 { JAVA }
+    csISOLatin1 { IANA JAVA }
+    iso-ir-100 { IANA JAVA }
+    ISO_8859-1:1987 { IANA* JAVA }
+    l1 { IANA JAVA }
+    819 { JAVA }
+    # windows-28591 { WINDOWS* } # This has odd behavior because it has the Euro update, which isn't correct.
+    # LATIN_1     # Old ICU name
+    # ANSI_X3.110-1983  # This is for a different IANA alias.  This isn't iso-8859-1.
+
+US-ASCII { MIME* IANA JAVA WINDOWS }
+    ASCII { JAVA* IANA WINDOWS }
+    ANSI_X3.4-1968 { IANA* WINDOWS }
+    ANSI_X3.4-1986 { IANA WINDOWS }
+    ISO_646.irv:1991 { IANA WINDOWS }
+    iso_646.irv:1983 { JAVA }
+    ISO646-US { JAVA IANA WINDOWS }
+    us { IANA }
+    csASCII { IANA WINDOWS }
+    iso-ir-6 { IANA }
+    cp367 { IANA WINDOWS }
+    ascii7 { JAVA }
+    646 { JAVA }
+    windows-20127 { WINDOWS* }
+    ibm-367 { IBM* } IBM367 { IANA WINDOWS } # This is not truely ibm-367 because it's missing the fallbacks.
+
+# GB 18030 is partly algorithmic, using the MBCS converter
+gb18030 { IANA* }       ibm-1392 { IBM* } windows-54936 { WINDOWS* } GB18030 { MIME* }
+
+# Table-based interchange codepages
+
+# Central Europe
+ibm-912_P100-1995 { UTR22* }
+                        ibm-912 { IBM* JAVA }
+                        ISO-8859-2 { MIME* IANA JAVA* WINDOWS }
+                        ISO_8859-2:1987 { IANA* WINDOWS JAVA }
+                        latin2 { IANA WINDOWS JAVA }
+                        csISOLatin2 { IANA WINDOWS JAVA }
+                        iso-ir-101 { IANA WINDOWS JAVA }
+                        l2 { IANA WINDOWS JAVA }
+                        8859_2 { JAVA }
+                        cp912 { JAVA }
+                        912 { JAVA }
+                        windows-28592 { WINDOWS* }
+
+# Maltese Esperanto
+ibm-913_P100-2000 { UTR22* }
+                        ibm-913 { IBM* JAVA }
+                        ISO-8859-3 { MIME* IANA WINDOWS JAVA* }
+                        ISO_8859-3:1988 { IANA* WINDOWS JAVA }
+                        latin3 { IANA JAVA WINDOWS }
+                        csISOLatin3 { IANA WINDOWS }
+                        iso-ir-109 { IANA WINDOWS JAVA }
+                        l3 { IANA WINDOWS JAVA }
+                        8859_3 { JAVA }
+                        cp913 { JAVA }
+                        913 { JAVA }
+                        windows-28593 { WINDOWS* }
+
+# Baltic
+ibm-914_P100-1995 { UTR22* }
+                        ibm-914 { IBM* JAVA }
+                        ISO-8859-4 { MIME* IANA WINDOWS JAVA* }
+                        latin4 { IANA WINDOWS JAVA }
+                        csISOLatin4 { IANA WINDOWS JAVA }
+                        iso-ir-110 { IANA WINDOWS JAVA }
+                        ISO_8859-4:1988 { IANA* WINDOWS JAVA }
+                        l4 { IANA WINDOWS JAVA }
+                        8859_4 { JAVA }
+                        cp914 { JAVA }
+                        914 { JAVA }
+                        windows-28594 { WINDOWS* }
+
+# Cyrillic
+ibm-915_P100-1995 { UTR22* }
+                        ibm-915 { IBM* JAVA }
+                        ISO-8859-5 { MIME* IANA WINDOWS JAVA* }
+                        cyrillic { IANA WINDOWS JAVA }
+                        csISOLatinCyrillic { IANA WINDOWS JAVA }
+                        iso-ir-144 { IANA WINDOWS JAVA }
+                        ISO_8859-5:1988 { IANA* WINDOWS JAVA }
+                        8859_5 { JAVA }
+                        cp915 { JAVA }
+                        915 { JAVA }
+                        windows-28595 { WINDOWS* }
+
+glibc-PT154-2.3.3 { UTR22* }
+                        PTCP154 { IANA* }
+                        csPTCP154
+                        PT154
+                        CP154
+                        Cyrillic-Asian
+
+# Arabic
+# ISO_8859-6-E and ISO_8859-6-I are similar to this charset, but BiDi is done differently
+# From a narrow mapping point of view, there is no difference.
+# -E means explicit. -I means implicit.
+# -E requires the client to handle the ISO 6429 bidirectional controls
+ibm-1089_P100-1995 { UTR22* }
+                        ibm-1089 { IBM* JAVA }
+                        ISO-8859-6 { MIME* IANA WINDOWS JAVA* }
+                        arabic { IANA WINDOWS JAVA }
+                        csISOLatinArabic { IANA WINDOWS JAVA }
+                        iso-ir-127 { IANA WINDOWS JAVA }
+                        ISO_8859-6:1987 { IANA* WINDOWS JAVA }
+                        ECMA-114 { IANA JAVA }
+                        ASMO-708 { IANA JAVA }
+                        8859_6 { JAVA }
+                        cp1089 { JAVA }
+                        1089 { JAVA }
+                        windows-28596 { WINDOWS* }
+                        ISO-8859-6-I { IANA MIME } # IANA considers this alias different and BiDi needs to be applied.
+                        ISO-8859-6-E { IANA MIME } # IANA considers this alias different and BiDi needs to be applied.
+                        x-ISO-8859-6S { JAVA }
+
+# ISO Greek (with euro update). This is really ISO_8859-7:2003
+ibm-9005_X110-2007 { UTR22* }
+                        ibm-9005 { IBM* }
+                        ISO-8859-7 { MIME* IANA JAVA* WINDOWS }
+                        8859_7 { JAVA }
+                        greek { IANA JAVA WINDOWS }
+                        greek8 { IANA JAVA WINDOWS }
+                        ELOT_928 { IANA JAVA WINDOWS }
+                        ECMA-118 { IANA JAVA WINDOWS }
+                        csISOLatinGreek { IANA JAVA WINDOWS }
+                        iso-ir-126 { IANA JAVA WINDOWS }
+                        ISO_8859-7:1987 { IANA* JAVA WINDOWS }
+                        windows-28597 { WINDOWS* }
+                        sun_eu_greek # For Solaris
+
+# ISO Greek (w/o euro update)
+# JDK 1.5 has these aliases.
+ibm-813_P100-1995 { UTR22* }
+                        ibm-813 { IBM* JAVA* }
+                        cp813 { JAVA }
+                        813 { JAVA }
+
+# hebrew
+# ISO_8859-8-E and ISO_8859-8-I are similar to this charset, but BiDi is done differently
+# From a narrow mapping point of view, there is no difference.
+# -E means explicit. -I means implicit.
+# -E requires the client to handle the ISO 6429 bidirectional controls
+# This matches the official mapping on unicode.org
+ibm-5012_P100-1999 { UTR22* }
+                        ibm-5012 { IBM* }
+                        ISO-8859-8 { MIME* IANA WINDOWS JAVA* }
+                        hebrew { IANA WINDOWS JAVA }
+                        csISOLatinHebrew { IANA WINDOWS JAVA }
+                        iso-ir-138 { IANA WINDOWS JAVA }
+                        ISO_8859-8:1988 { IANA* WINDOWS JAVA }
+                        ISO-8859-8-I { IANA MIME } # IANA and Windows considers this alias different and BiDi needs to be applied.
+                        ISO-8859-8-E { IANA MIME } # IANA and Windows considers this alias different and BiDi needs to be applied.
+                        8859_8 { JAVA }
+                        windows-28598 { WINDOWS* } # Hebrew (ISO-Visual). A hybrid between ibm-5012 and ibm-916 with extra PUA mappings.
+                        hebrew8 # Reflect HP-UX code page update
+
+# Unfortunately, the Java aliases are split across ibm-916 and ibm-5012
+# Also many platforms are a combination between ibm-916 and ibm-5012 behaviors
+ibm-916_P100-1995 { UTR22* }
+                        ibm-916 { IBM* JAVA* }
+                        cp916 { JAVA }
+                        916 { JAVA }
+
+# Turkish
+ibm-920_P100-1995 { UTR22* }
+                        ibm-920 { IBM* JAVA }
+                        ISO-8859-9 { MIME* IANA WINDOWS JAVA* }
+                        latin5 { IANA WINDOWS JAVA }
+                        csISOLatin5 { IANA JAVA }
+                        iso-ir-148 { IANA WINDOWS JAVA }
+                        ISO_8859-9:1989 { IANA* WINDOWS }
+                        l5 { IANA WINDOWS JAVA }
+                        8859_9 { JAVA }
+                        cp920 { JAVA }
+                        920 { JAVA }
+                        windows-28599 { WINDOWS* }
+                        ECMA-128    # IANA doesn't have this alias 6/24/2002
+                        turkish8    # Reflect HP-UX codepage update 8/1/2008
+                        turkish     # Reflect HP-UX codepage update 8/1/2008
+
+# Nordic languages
+iso-8859_10-1998 { UTR22* } ISO-8859-10 { MIME* IANA* }
+                        iso-ir-157 { IANA }
+                        l6 { IANA }
+                        ISO_8859-10:1992 { IANA }
+                        csISOLatin6 { IANA }
+                        latin6 { IANA }
+
+# Thai
+# Be warned. There several iso-8859-11 codepage variants, and they are all incompatible.
+# ISO-8859-11 is a superset of TIS-620. The difference is that ISO-8859-11 contains the C1 control codes.
+iso-8859_11-2001 { UTR22* } ISO-8859-11
+                        thai8 # HP-UX alias. HP-UX says TIS-620, but it's closer to ISO-8859-11.
+                        x-iso-8859-11 { JAVA* }
+
+# iso-8859-13, PC Baltic (w/o euro update)
+ibm-921_P100-1995 { UTR22* }
+                        ibm-921 { IBM* }
+                        ISO-8859-13 { IANA* MIME* JAVA* }
+                        8859_13 { JAVA }
+                        windows-28603 { WINDOWS* }
+                        cp921
+                        921
+                        x-IBM921 { JAVA }
+
+# Celtic
+iso-8859_14-1998 { UTR22* } ISO-8859-14 { IANA* }
+                        iso-ir-199 { IANA }
+                        ISO_8859-14:1998 { IANA }
+                        latin8 { IANA }
+                        iso-celtic { IANA }
+                        l8 { IANA }
+
+# Latin 9
+ibm-923_P100-1998 { UTR22* }
+                        ibm-923 { IBM* JAVA }
+                        ISO-8859-15 { IANA* MIME* WINDOWS JAVA* }
+                        Latin-9 { IANA WINDOWS }
+                        l9 { WINDOWS }
+                        8859_15 { JAVA }
+                        latin0 { JAVA }
+                        csisolatin0 { JAVA }
+                        csisolatin9 { JAVA }
+                        iso8859_15_fdis { JAVA }
+                        cp923 { JAVA }
+                        923 { JAVA }
+                        windows-28605 { WINDOWS* }
+
+# CJK encodings
+
+ibm-942_P12A-1999 { UTR22* }    # ibm-942_P120 is a rarely used alternate mapping (sjis78 is already old)
+                        ibm-942 { IBM* }
+                        ibm-932 { IBM }
+                        cp932
+                        shift_jis78
+                        sjis78
+                        ibm-942_VSUB_VPUA
+                        ibm-932_VSUB_VPUA
+                        x-IBM942 { JAVA* }
+                        x-IBM942C { JAVA }
+                        # Is this "JIS_C6226-1978"?
+
+# ibm-943_P15A-2003 differs from windows-932-2000 only in a few roundtrip mappings:
+# - the usual IBM PC control code rotation (1A-1C-7F)
+# - the Windows table has roundtrips for bytes 80, A0, and FD-FF to U+0080 and PUA
+ibm-943_P15A-2003 { UTR22* }
+                        ibm-943 # Leave untagged because this isn't the default
+                        Shift_JIS { IANA* MIME* WINDOWS JAVA }
+                        MS_Kanji { IANA WINDOWS JAVA }
+                        csShiftJIS { IANA WINDOWS JAVA }
+                        windows-31j { IANA JAVA } # A further extension of Shift_JIS to include NEC special characters (Row 13)
+                        csWindows31J { IANA WINDOWS JAVA } # A further extension of Shift_JIS to include NEC special characters (Row 13)
+                        x-sjis { WINDOWS JAVA }
+                        x-ms-cp932 { WINDOWS }
+                        cp932 { WINDOWS }
+                        windows-932 { WINDOWS* }
+                        cp943c { JAVA* }    # This is slightly different, but the backslash mapping is the same.
+                        IBM-943C #{ AIX* } # Add this tag once AIX aliases becomes available
+                        ms932
+                        pck     # Probably SOLARIS
+                        sjis    # This might be for ibm-1351
+                        ibm-943_VSUB_VPUA
+                        x-MS932_0213 { JAVA }
+                        x-JISAutoDetect { JAVA }
+                        # cp943 # This isn't Windows, and no one else uses it.
+                        # IANA says that Windows-31J is an extension to csshiftjis ibm-932 
+ibm-943_P130-1999 { UTR22* }
+                        ibm-943 { IBM* JAVA }
+                        Shift_JIS # Leave untagged because this isn't the default
+                        cp943 { JAVA* }    # This is slightly different, but the backslash mapping is the same.
+                        943 { JAVA }
+                        ibm-943_VASCII_VSUB_VPUA
+                        x-IBM943 { JAVA }
+                        # japanese. Unicode name is \u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe
+ibm-33722_P12A_P12A-2009_U2 { UTR22* }
+                        ibm-33722   # Leave untagged because this isn't the default
+                        ibm-5050    # Leave untagged because this isn't the default, and yes this alias is correct
+                        ibm-33722_VPUA
+                        IBM-eucJP
+windows-51932-2006 { UTR22* }
+                        windows-51932 { WINDOWS* }
+                        CP51932 { IANA* }
+                        csCP51932
+ibm-33722_P120-1999 { UTR22* }  # Japan EUC with \ <-> Yen mapping
+                        ibm-33722 { IBM* JAVA }
+                        ibm-5050 { IBM }    # Yes this is correct
+                        cp33722 { JAVA* }
+                        33722 { JAVA }
+                        ibm-33722_VASCII_VPUA
+                        x-IBM33722 { JAVA }
+                        x-IBM33722A { JAVA }
+                        x-IBM33722C { JAVA }
+# ibm-954 seems to be almost a superset of ibm-33722 and ibm-1350
+# ibm-1350 seems to be almost a superset of ibm-33722
+# ibm-954 contains more PUA characters than the others.
+ibm-954_P101-2007 { UTR22* }
+                        ibm-954 { IBM* }
+                        x-IBM954 { JAVA* }
+                        x-IBM954C { JAVA }
+                        # eucJP # This is closest to Solaris EUC-JP.
+euc-jp-2007 { UTR22* }
+                        EUC-JP { MIME* IANA JAVA* WINDOWS* }
+                        Extended_UNIX_Code_Packed_Format_for_Japanese { IANA* JAVA WINDOWS }
+                        csEUCPkdFmtJapanese { IANA JAVA WINDOWS }
+                        X-EUC-JP { MIME JAVA WINDOWS }   # Japan EUC. x-euc-jp is a MIME name
+                        eucjis {JAVA}
+                        ujis # Linux sometimes uses this name. This is an unfortunate generic and rarely used name. Its use is discouraged.
+
+aix-IBM_udcJP-4.3.6 { UTR22* }
+                        x-IBM-udcJP { JAVA* }
+
+java-euc_jp_linux-1.6_P { UTR22* }
+                        euc-jp-linux
+                        x-EUC_JP_LINUX { JAVA* }
+
+java-sjis_0213-1.6_P { UTR22* }
+                        x-SJIS_0213 { JAVA* }
+
+# Here are various interpretations and extensions of Big5
+ibm-1373_P100-2002 { UTR22* } # IBM's interpretation of Windows' Taiwan Big-5 without HKSCS extensions
+                        ibm-1373 { IBM* }
+                        windows-950 # Alternate mapping. Leave untagged. This is the IBM interpretation of a Windows codepage.
+windows-950-2000 { UTR22* }
+                        Big5 { IANA* MIME* JAVA* WINDOWS }
+                        csBig5 { IANA WINDOWS }
+                        windows-950 { WINDOWS* }
+                        x-windows-950 { JAVA }
+                        x-big5
+                        ms950
+ibm-950_P110-1999 { UTR22* }                # Taiwan Big-5 (w/o euro update)
+                        ibm-950 { IBM* JAVA }
+                        cp950 { JAVA* }
+                        950 { JAVA }
+                        x-IBM950 { JAVA }
+ibm-1375_P100-2008 { UTR22* }   # Big5-HKSCS-2004 with Unicode 3.1 mappings. This uses supplementary characters.
+                        ibm-1375 { IBM* }
+                        Big5-HKSCS { IANA* JAVA* }
+                        big5hk { JAVA }
+                        HKSCS-BIG5  # From http://www.openi18n.org/localenameguide/
+ibm-5471_P100-2006 { UTR22* }   # Big5-HKSCS-2001 with Unicode 3.0 mappings. This uses many PUA characters.
+                        ibm-5471 { IBM* }
+                        Big5-HKSCS
+                        MS950_HKSCS { JAVA* }
+                        hkbig5 # from HP-UX 11i, which can't handle supplementary characters.
+                        big5-hkscs:unicode3.0
+                        x-MS950-HKSCS { JAVA }
+                        # windows-950 # Windows-950 can be w/ or w/o HKSCS extensions. By default it's not.
+                        # windows-950_hkscs
+solaris-zh_TW_big5-2.7 { UTR22* }
+                        Big5_Solaris { JAVA* }
+                        x-Big5-Solaris { JAVA }
+# GBK
+ibm-1386_P100-2001  { UTR22* }
+                        ibm-1386 { IBM* }
+                        cp1386
+                        windows-936 # Alternate mapping. Leave untagged. This is the IBM interpretation of a Windows codepage.
+                        ibm-1386_VSUB_VPUA
+windows-936-2000 { UTR22* }
+                        GBK { IANA* WINDOWS JAVA* }
+                        CP936 { IANA JAVA }
+                        MS936 { IANA }  # In JDK 1.5, this goes to x-mswin-936. This is an IANA name split.
+                        windows-936 { IANA WINDOWS* JAVA }
+
+# Java has two different tables for ibm-1383 and gb2312. We pick closest set for tagging.
+ibm-1383_P110-1999 { UTR22* }       # China EUC.
+                        ibm-1383 { IBM* JAVA }
+                        GB2312 { IANA* MIME* }
+                        csGB2312 { IANA }
+                        cp1383 { JAVA* }
+                        1383 { JAVA }
+                        EUC-CN  # According to other platforms, windows-20936 looks more like euc-cn. x-euc-cn is also a MIME name
+                        ibm-eucCN
+                        hp15CN  # From HP-UX?
+                        ibm-1383_VPUA
+                        # gb          # This is not an IANA name. gb in IANA means Great Britain.
+
+ibm-5478_P100-1995 { UTR22* } ibm-5478 { IBM* } # This gb_2312_80 DBCS mapping is needed by iso-2022.
+                        GB_2312-80 { IANA* }    # Windows maps this alias incorrectly
+                        chinese { IANA }
+                        iso-ir-58 { IANA }
+                        csISO58GB231280 { IANA }
+                        gb2312-1980
+                        GB2312.1980-0   # From X11R6
+
+euc-tw-2014 { UTR22* }                # Updated EUC-TW converter based on ibm-964
+                        EUC-TW
+
+ibm-964_P110-1999 { UTR22* }                # Taiwan EUC. x-euc-tw is a MIME name
+                        ibm-964 { IBM* JAVA }
+                        ibm-eucTW
+                        cns11643 
+                        cp964 { JAVA* }
+                        964 { JAVA }
+                        ibm-964_VPUA
+                        x-IBM964 { JAVA }
+
+# ISO-2022 needs one, and other people may need others.
+ibm-949_P110-1999 { UTR22* }
+                        ibm-949 { IBM* JAVA }
+                        cp949 { JAVA* }
+                        949 { JAVA }
+                        ibm-949_VASCII_VSUB_VPUA
+                        x-IBM949 { JAVA }
+ibm-949_P11A-1999 { UTR22* }
+                        ibm-949 # Leave untagged because this isn't the default
+                        cp949c { JAVA* }
+                        ibm-949_VSUB_VPUA
+                        x-IBM949C { JAVA }
+                        IBM-949C { JAVA }
+
+# Korean EUC.
+#
+# <quote from="Jungshik Shin">
+# EUC-KR = KS X 1003/ISO 646-KR or ISO 646-IRV/US-ASCII in GL and KS X 1001:1998 (formerly KS C 5601-1987) in GR.
+#
+# Although widely spread on MS Windows, using 
+# KS C 5601 or related names to denote EUC-KR or
+# windows-949 is very much misleading. KS C 5601-1987
+# is NOT suitable as a designation for MIME charset
+# and MBCS. It's just the name of a 94 x 94 Korean 
+# coded character set standard which can be invoked
+# on either GL (with MSB reset) or GR (with MSB set).
+# Note that JOHAB (windows-1361) specified in 
+# KS X 1001:1998 annex 3 (KS C 5601-1992 annex 3) 
+# is a _seprate_ MBCS with a _completely different_
+# mapping.
+# </quote>
+#
+# The following aliases tries to mirror the poor state of alias recognition
+# on these platforms.
+#
+# ibm-970 is almost a subset of ibm-1363.
+# Java, Solaris and AIX use euc-kr to also mean ksc5601.
+# Java has both ibm-970 and EUC-KR as separate converters.
+ibm-970_P110_P110-2006_U2 { UTR22* }
+                        ibm-970 { IBM* JAVA }
+                        EUC-KR { IANA* MIME* WINDOWS JAVA }
+                        KS_C_5601-1987 { JAVA }
+                        windows-51949 { WINDOWS* }
+                        csEUCKR { IANA WINDOWS }  # x-euc-kr is also a MIME name
+                        ibm-eucKR { JAVA }
+                        KSC_5601 { JAVA } # Needed by iso-2022
+                        5601 { JAVA }
+                        cp970 { JAVA* }
+                        970 { JAVA }
+                        ibm-970_VPUA
+                        x-IBM970 { JAVA }
+
+# ibm-971 is almost the set of DBCS mappings of ibm-970
+ibm-971_P100-1995       ibm-971 { IBM* } ibm-971_VPUA x-IBM971 { JAVA* }
+
+# Java, Solaris and AIX use euc-kr to also mean ksc5601, and _sometimes_ for Windows too.
+# ibm-1363 is almost a superset of ibm-970.
+ibm-1363_P11B-1998 { UTR22* }
+                        ibm-1363 # Leave untagged because this isn't the default
+                        KS_C_5601-1987 { IANA* }
+                        KS_C_5601-1989 { IANA }
+                        KSC_5601 { IANA }
+                        csKSC56011987 { IANA }
+                        korean { IANA }
+                        iso-ir-149 { IANA }
+                        cp1363 { MIME* }
+                        5601
+                        ksc
+                        windows-949 # Alternate mapping. Leave untagged. This is the IBM interpretation of a Windows codepage.
+                        ibm-1363_VSUB_VPUA
+                        x-IBM1363C { JAVA* }
+                        # ks_x_1001:1992
+                        # ksc5601-1992
+
+ibm-1363_P110-1997 { UTR22* } # Korean KSC MBCS with \ <-> Won mapping
+                        ibm-1363 { IBM* }
+                        ibm-1363_VASCII_VSUB_VPUA
+                        x-IBM1363 { JAVA* }
+
+windows-949-2000 { UTR22* }
+                        windows-949 { JAVA* WINDOWS* }
+                        KS_C_5601-1987 { WINDOWS }
+                        KS_C_5601-1989 { WINDOWS }
+                        KSC_5601 { MIME* WINDOWS } # Needed by iso-2022
+                        csKSC56011987 { WINDOWS }
+                        korean { WINDOWS }
+                        iso-ir-149 { WINDOWS }
+                        ms949 { JAVA }
+                        x-KSC5601 { JAVA }
+
+windows-1361-2000 { UTR22* }
+                        ksc5601_1992
+                        ms1361
+                        johab
+                        x-Johab { JAVA* }
+
+windows-874-2000 { UTR22* }   # Thai (w/ euro update)
+                        TIS-620 { WINDOWS }
+                        windows-874 { JAVA* WINDOWS* }
+                        MS874 { JAVA }
+                        x-windows-874 { JAVA }
+                        # iso-8859-11 { WINDOWS } # iso-8859-11 is similar to TIS-620. ibm-13162 is a closer match.
+
+ibm-874_P100-1995 { UTR22* }    # Thai PC (w/o euro update).
+                        ibm-874 { IBM* JAVA }
+                        ibm-9066 { IBM }    # Yes ibm-874 == ibm-9066. ibm-1161 has the euro update.
+                        cp874 { JAVA* }
+                        TIS-620 { IANA* JAVA }  # This is actually separate from ibm-874, which is similar to this table
+                        tis620.2533 { JAVA }    # This is actually separate from ibm-874, which is similar to this table
+                        eucTH               # eucTH is an unusual alias from Solaris.  eucTH has fewer mappings than TIS620
+                        x-IBM874 { JAVA }
+
+ibm-1162_P100-1999 { UTR22* }   # Thai (w/ euro update)
+                        ibm-1162 { IBM* }
+
+windows-864-2000 { UTR22* }
+                        ibm-864s
+                        cp864s
+                        x-IBM864S { JAVA* }
+
+# Platform codepages
+# If Java supports the IBM prefix, it should also support the ibm- prefix too.
+ibm-437_P100-1995 { UTR22* }    ibm-437 { IBM* } IBM437 { IANA* WINDOWS JAVA } cp437 { IANA WINDOWS JAVA* } 437 { IANA WINDOWS JAVA } csPC8CodePage437 { IANA JAVA } windows-437 { WINDOWS* }  # PC US
+ibm-720_P100-1997 { UTR22* }    ibm-720 { IBM* } windows-720 { WINDOWS* } DOS-720 { WINDOWS } x-IBM720 { JAVA* } # PC Arabic
+ibm-737_P100-1997 { UTR22* }    ibm-737 { IBM* } IBM737 { WINDOWS JAVA } cp737 { JAVA* } windows-737 { WINDOWS* } 737 { JAVA } x-IBM737 { JAVA } # PC Greek
+ibm-775_P100-1996 { UTR22* }    ibm-775 { IBM* } IBM775 { IANA* WINDOWS JAVA } cp775 { IANA WINDOWS JAVA* } csPC775Baltic { IANA } windows-775 { WINDOWS* } 775 { JAVA } # PC Baltic
+ibm-850_P100-1995 { UTR22* }    ibm-850 { IBM* } IBM850 { IANA* MIME* WINDOWS JAVA } cp850 { IANA MIME WINDOWS JAVA* } 850 { IANA JAVA } csPC850Multilingual { IANA JAVA } windows-850 { WINDOWS* } # PC latin1
+ibm-851_P100-1995 { UTR22* }    ibm-851 { IBM* } IBM851 { IANA* } cp851 { IANA MIME* } 851 { IANA } csPC851 { IANA }             # PC DOS Greek (w/o euro)
+ibm-852_P100-1995 { UTR22* }    ibm-852 { IBM* } IBM852 { IANA* WINDOWS JAVA } cp852 { IANA WINDOWS JAVA* } 852 { IANA WINDOWS JAVA } csPCp852 { IANA JAVA } windows-852 { WINDOWS* } # PC latin2 (w/o euro update)
+ibm-855_P100-1995 { UTR22* }    ibm-855 { IBM* } IBM855 { IANA* JAVA } cp855 { IANA JAVA* } 855 { IANA } csIBM855 { IANA } csPCp855 { JAVA } windows-855 { WINDOWS* } # PC cyrillic (w/o euro update)
+ibm-856_P100-1995 { UTR22* }    ibm-856 { IBM* } IBM856 { JAVA } cp856 { JAVA* } 856 { JAVA } x-IBM856 { JAVA } # PC Hebrew implicit order
+ibm-857_P100-1995 { UTR22* }    ibm-857 { IBM* } IBM857 { IANA* MIME* WINDOWS JAVA } cp857 { IANA MIME JAVA* } 857 { IANA JAVA } csIBM857 { IANA JAVA } windows-857 { WINDOWS* }   # PC Latin 5 (w/o euro update)
+ibm-858_P100-1997 { UTR22* }    ibm-858 { IBM* } IBM00858 { IANA* MIME* JAVA } CCSID00858 { IANA JAVA } CP00858 { IANA JAVA } PC-Multilingual-850+euro { IANA } cp858 { MIME JAVA* } windows-858 { WINDOWS* } # PC latin1 with Euro
+ibm-860_P100-1995 { UTR22* }    ibm-860 { IBM* } IBM860 { IANA* MIME* JAVA } cp860 { IANA MIME JAVA* } 860 { IANA JAVA } csIBM860 { IANA JAVA }    # PC Portugal
+ibm-861_P100-1995 { UTR22* }    ibm-861 { IBM* } IBM861 { IANA* MIME* WINDOWS JAVA } cp861 { IANA MIME JAVA* } 861 { IANA JAVA } cp-is { IANA JAVA } csIBM861 { IANA JAVA } windows-861 { WINDOWS* } # PC Iceland
+ibm-862_P100-1995 { UTR22* }    ibm-862 { IBM* } IBM862 { IANA* MIME* JAVA } cp862 { IANA MIME JAVA* } 862 { IANA JAVA } csPC862LatinHebrew { IANA JAVA } DOS-862 { WINDOWS } windows-862 { WINDOWS* }    # PC Hebrew visual order (w/o euro update)
+ibm-863_P100-1995 { UTR22* }    ibm-863 { IBM* } IBM863 { IANA* MIME* JAVA } cp863 { IANA MIME JAVA* } 863 { IANA JAVA } csIBM863 { IANA JAVA }    # PC Canadian French
+ibm-864_X110-1999 { UTR22* }    ibm-864 { IBM* } IBM864 { IANA* MIME* JAVA } cp864 { IANA MIME JAVA* } csIBM864 { IANA JAVA } # PC Arabic (w/o euro update)
+ibm-865_P100-1995 { UTR22* }    ibm-865 { IBM* } IBM865 { IANA* MIME* JAVA } cp865 { IANA MIME JAVA* } 865 { IANA JAVA } csIBM865 { IANA JAVA }    # PC Nordic
+ibm-866_P100-1995 { UTR22* }    ibm-866 { IBM* } IBM866 { IANA* MIME* JAVA } cp866 { IANA MIME WINDOWS JAVA* } 866 { IANA JAVA } csIBM866 { IANA JAVA } windows-866 { WINDOWS* } # PC Russian (w/o euro update)
+ibm-867_P100-1998 { UTR22* }    ibm-867 { IBM* } x-IBM867 { JAVA* } # PC Hebrew (w/ euro update) Updated version of ibm-862
+ibm-868_P100-1995 { UTR22* }    ibm-868 { IBM* } IBM868 { IANA* MIME* JAVA } CP868 { IANA MIME JAVA* } 868 { JAVA } csIBM868 { IANA } cp-ar { IANA }          # PC Urdu
+ibm-869_P100-1995 { UTR22* }    ibm-869 { IBM* } IBM869 { IANA* MIME* WINDOWS JAVA } cp869 { IANA MIME JAVA* } 869 { IANA JAVA } cp-gr { IANA JAVA } csIBM869 { IANA JAVA } windows-869 { WINDOWS* } # PC Greek (w/o euro update)
+ibm-878_P100-1996 { UTR22* }    ibm-878 { IBM* } KOI8-R { IANA* MIME* WINDOWS JAVA* } koi8 { WINDOWS JAVA } csKOI8R { IANA WINDOWS JAVA } windows-20866 { WINDOWS* } cp878   # Russian internet
+ibm-901_P100-1999 { UTR22* }    ibm-901 { IBM* } # PC Baltic (w/ euro update), update of ibm-921
+ibm-902_P100-1999 { UTR22* }    ibm-902 { IBM* } # PC Estonian (w/ euro update), update of ibm-922
+ibm-922_P100-1999 { UTR22* }    ibm-922 { IBM* } IBM922 { JAVA } cp922 { JAVA* } 922 { JAVA } x-IBM922 { JAVA } # PC Estonian (w/o euro update)
+ibm-1168_P100-2002 { UTR22* }   ibm-1168 { IBM* } KOI8-U { IANA* WINDOWS } windows-21866 { WINDOWS* } # Ukrainian KOI8. koi8-ru != KOI8-U and Microsoft is wrong for aliasing them as the same.
+ibm-4909_P100-1999 { UTR22* }   ibm-4909 { IBM* } # ISO Greek (w/ euro update), update of ibm-813
+
+# The cp aliases in this section aren't really windows aliases, but it was used by ICU for Windows.
+# cp is usually used to denote IBM in Java, and that is why we don't do that anymore.
+# The windows-* aliases mean windows codepages.
+ibm-5346_P100-1998 { UTR22* }   ibm-5346 { IBM* } windows-1250 { IANA* JAVA* WINDOWS* } cp1250 { WINDOWS JAVA } # Windows Latin2 (w/ euro update)
+ibm-5347_P100-1998 { UTR22* }   ibm-5347 { IBM* } windows-1251 { IANA* JAVA* WINDOWS* } cp1251 { WINDOWS JAVA } ANSI1251 # Windows Cyrillic (w/ euro update). ANSI1251 is from Solaris
+ibm-5348_P100-1997 { UTR22* }   ibm-5348 { IBM* } windows-1252 { IANA* JAVA* WINDOWS* } cp1252 { JAVA }         # Windows Latin1 (w/ euro update)
+ibm-5349_P100-1998 { UTR22* }   ibm-5349 { IBM* } windows-1253 { IANA* JAVA* WINDOWS* } cp1253 { JAVA }         # Windows Greek (w/ euro update)
+ibm-5350_P100-1998 { UTR22* }   ibm-5350 { IBM* } windows-1254 { IANA* JAVA* WINDOWS* } cp1254 { JAVA }         # Windows Turkish (w/ euro update)
+ibm-9447_P100-2002 { UTR22* }   ibm-9447 { IBM* } windows-1255 { IANA* JAVA* WINDOWS* } cp1255 { JAVA }         # Windows Hebrew (w/ euro update)
+ibm-9448_X100-2005 { UTR22* }   ibm-9448 { IBM* } windows-1256 { IANA* JAVA* WINDOWS* } cp1256 { WINDOWS JAVA } x-windows-1256S { JAVA } # Windows Arabic (w/ euro update)
+ibm-9449_P100-2002 { UTR22* }   ibm-9449 { IBM* } windows-1257 { IANA* JAVA* WINDOWS* } cp1257 { JAVA }         # Windows Baltic (w/ euro update)
+ibm-5354_P100-1998 { UTR22* }   ibm-5354 { IBM* } windows-1258 { IANA* JAVA* WINDOWS* } cp1258 { JAVA }         # Windows Vietnamese (w/ euro update)
+
+# These tables are out of date, and most don't have the Euro
+# Leave the windows- variants untagged. They are alternate tables of the newer ones above.
+ibm-1250_P100-1995 { UTR22* }   ibm-1250 { IBM* } windows-1250  # Old Windows Latin2 (w/o euro update)
+ibm-1251_P100-1995 { UTR22* }   ibm-1251 { IBM* } windows-1251  # Old Windows Cyrillic (w/o euro update)
+ibm-1252_P100-2000 { UTR22* }   ibm-1252 { IBM* } windows-1252  # Old Windows Latin 1 without Euro
+ibm-1253_P100-1995 { UTR22* }   ibm-1253 { IBM* } windows-1253  # Old Windows Greek (w/o euro update)
+ibm-1254_P100-1995 { UTR22* }   ibm-1254 { IBM* } windows-1254  # Old Windows Turkish (w/o euro update)
+ibm-1255_P100-1995 { UTR22* }   ibm-1255 { IBM* }               # Very old Windows Hebrew (w/o euro update)
+ibm-5351_P100-1998 { UTR22* }   ibm-5351 { IBM* } windows-1255  # Old Windows Hebrew (w/ euro update)
+ibm-1256_P110-1997 { UTR22* }   ibm-1256 { IBM* }               # Old Windows Arabic (w/o euro update)
+ibm-5352_P100-1998 { UTR22* }   ibm-5352 { IBM* } windows-1256  # Somewhat old Windows Arabic (w/ euro update)
+ibm-1257_P100-1995 { UTR22* }   ibm-1257 { IBM* }               # Old Windows Baltic (w/o euro update)
+ibm-5353_P100-1998 { UTR22* }   ibm-5353 { IBM* } windows-1257  # Somewhat old Windows Baltic (w/ euro update)
+ibm-1258_P100-1997 { UTR22* }   ibm-1258 { IBM* } windows-1258  # Old Windows Vietnamese (w/o euro update)
+
+macos-0_2-10.2 { UTR22* }       macintosh { IANA* MIME* WINDOWS } mac { IANA } csMacintosh { IANA } windows-10000 { WINDOWS* } macroman { JAVA } x-macroman { JAVA* } # Apple latin 1
+macos-6_2-10.4 { UTR22* }       x-mac-greek { MIME* WINDOWS } windows-10006 { WINDOWS* } macgr x-MacGreek { JAVA* }  # Apple Greek
+macos-7_3-10.2 { UTR22* }       x-mac-cyrillic { MIME* WINDOWS } windows-10007 { WINDOWS* } mac-cyrillic maccy x-MacCyrillic { JAVA } x-MacUkraine { JAVA* } # Apple Cyrillic
+macos-21-10.5 { UTR22* }        x-mac-thai { MIME* } x-MacThai { JAVA* } MacThai { JAVA }
+macos-29-10.2 { UTR22* }        x-mac-centraleurroman { MIME* } windows-10029 { WINDOWS* } x-mac-ce { WINDOWS } macce maccentraleurope x-MacCentralEurope { JAVA* }  # Apple Central Europe
+macos-33-10.5 { UTR22* }        x-mac-symbol { MIME* } x-MacSymbol { JAVA* } MacSymbol { JAVA }
+macos-34-10.2 { UTR22* }        x-mac-dingbat { MIME* } x-MacDingbat { JAVA* } MacDingbat { JAVA }
+macos-35-10.2 { UTR22* }        x-mac-turkish { MIME* WINDOWS } windows-10081 { WINDOWS* } mactr x-MacTurkish { JAVA* }  # Apple Turkish
+macos-36_2-10.2 { UTR22* }      x-mac-croatian { MIME* } x-MacCroatian { JAVA* } MacCroatian { JAVA }
+macos-37_5-10.2 { UTR22* }      x-mac-iceland { MIME* } x-MacIceland { JAVA* } MacIceland { JAVA }
+macos-38_2-10.2 { UTR22* }      x-mac-romania { MIME* } x-MacRomania { JAVA* } MacRomania { JAVA }
+macos-518-10.2 { UTR22* }       x-mac-arabic { MIME* } x-MacArabic { JAVA* } MacArabic { JAVA }
+macos-1285-10.2 { UTR22* }      x-mac-hebrew { MIME* } x-MacHebrew { JAVA* } MacHebrew { JAVA }
+
+ibm-1051_P100-1995 { UTR22* }   ibm-1051 { IBM* } hp-roman8 { IANA* } roman8 { IANA } r8 { IANA } csHPRoman8 { IANA } x-roman8 { JAVA* }   # HP Latin1
+ibm-1276_P100-1995 { UTR22* }   ibm-1276 { IBM* } Adobe-Standard-Encoding { IANA* } csAdobeStandardEncoding { IANA } # Different from ISO-Unicode-IBM-1276 (GCSGID: 1276)
+
+ibm-1006_P100-1995 { UTR22* }   ibm-1006 { IBM* } IBM1006 { JAVA } cp1006 { JAVA* } 1006 { JAVA } x-IBM1006 { JAVA }  # Urdu
+ibm-1098_P100-1995 { UTR22* }   ibm-1098 { IBM* } IBM1098 { JAVA } cp1098 { JAVA* } 1098 { JAVA } x-IBM1098 { JAVA }  # PC Farsi
+ibm-1124_P100-1996 { UTR22* }   ibm-1124 { IBM* JAVA } cp1124 { JAVA* } 1124 { JAVA } x-IBM1124 { JAVA }  # ISO Cyrillic Ukraine
+ibm-1125_P100-1997 { UTR22* }   ibm-1125 { IBM* } cp1125                                # Cyrillic Ukraine PC
+ibm-1129_P100-1997 { UTR22* }   ibm-1129 { IBM* }                                       # ISO Vietnamese
+ibm-1131_P100-1997 { UTR22* }   ibm-1131 { IBM* } cp1131                                # Cyrillic Belarus PC
+ibm-1133_P100-1997 { UTR22* }   ibm-1133 { IBM* }                                       # ISO Lao
+
+# GSM 03.38
+gsm-03.38-2009 { UTR22* }   GSM0338 # GSM0338 alias is from Perl
+
+# Partially algorithmic converters
+
+# [U_ENABLE_GENERIC_ISO_2022]
+# The _generic_ ISO-2022 converter is disabled starting 2003-dec-03 (ICU 2.8).
+# For details see the icu mailing list from 2003-dec-01 and the ucnv2022.c file.
+# Language-specific variants of ISO-2022 continue to be available as listed below.
+# ISO_2022                         ISO-2022
+
+ISO_2022,locale=ja,version=0    ISO-2022-JP { IANA* MIME* JAVA* } csISO2022JP { IANA JAVA } x-windows-iso2022jp { JAVA } x-windows-50220 { JAVA }
+ISO_2022,locale=ja,version=1    ISO-2022-JP-1 { MIME* } JIS_Encoding { IANA* } csJISEncoding { IANA } ibm-5054 { IBM* } JIS x-windows-50221 { JAVA* }
+ISO_2022,locale=ja,version=2    ISO-2022-JP-2 { IANA* MIME* } csISO2022JP2 { IANA }
+ISO_2022,locale=ja,version=3    JIS7
+ISO_2022,locale=ja,version=4    JIS8
+ISO_2022,locale=ko,version=0    ISO-2022-KR { IANA* MIME* JAVA* } csISO2022KR { IANA JAVA } # This uses ibm-949
+ISO_2022,locale=ko,version=1    ibm-25546 { IBM* }
+ISO_2022,locale=zh,version=0    ISO-2022-CN { IANA* JAVA* } csISO2022CN { JAVA } x-ISO-2022-CN-GB { JAVA }
+ISO_2022,locale=zh,version=1    ISO-2022-CN-EXT { IANA* }
+ISO_2022,locale=zh,version=2    ISO-2022-CN-CNS x-ISO-2022-CN-CNS { JAVA* }
+HZ                              HZ-GB-2312 { IANA* }
+x11-compound-text               COMPOUND_TEXT x-compound-text { JAVA* }
+
+ISCII,version=0         x-ISCII91 { JAVA* } x-iscii-de { WINDOWS } windows-57002 { WINDOWS* } iscii-dev ibm-4902 { IBM* } # ibm-806 contains non-standard box drawing symbols.
+ISCII,version=1         x-iscii-be { WINDOWS } windows-57003 { WINDOWS* } iscii-bng windows-57006 { WINDOWS } x-iscii-as { WINDOWS } # be is different from as on Windows.
+ISCII,version=2         x-iscii-pa { WINDOWS } windows-57011 { WINDOWS* } iscii-gur
+ISCII,version=3         x-iscii-gu { WINDOWS } windows-57010 { WINDOWS* } iscii-guj
+ISCII,version=4         x-iscii-or { WINDOWS } windows-57007 { WINDOWS* } iscii-ori
+ISCII,version=5         x-iscii-ta { WINDOWS } windows-57004 { WINDOWS* } iscii-tml
+ISCII,version=6         x-iscii-te { WINDOWS } windows-57005 { WINDOWS* } iscii-tlg
+ISCII,version=7         x-iscii-ka { WINDOWS } windows-57008 { WINDOWS* } iscii-knd
+ISCII,version=8         x-iscii-ma { WINDOWS } windows-57009 { WINDOWS* } iscii-mlm
+
+# Lotus specific
+LMBCS-1                 lmbcs ibm-65025 { IBM* }
+
+# These Lotus specific converters still work, but they aren't advertised in this alias table.
+# These are almost never used outside of Lotus software,
+# and they take a lot of time when creating the available converter list.
+# Also Lotus doesn't really use them anyway. It was a mistake to create these LMBCS variant converters in ICU.
+#LMBCS-2
+#LMBCS-3
+#LMBCS-4
+#LMBCS-5
+#LMBCS-6
+#LMBCS-8
+#LMBCS-11
+#LMBCS-16
+#LMBCS-17
+#LMBCS-18
+#LMBCS-19
+
+# EBCDIC codepages according to the CDRA
+
+# without Euro
+ibm-37_P100-1995 { UTR22* }              # EBCDIC US
+                        ibm-37 { IBM* }
+                        IBM037 { IANA* JAVA }
+                        ibm-037 # { JAVA }
+                        ebcdic-cp-us { IANA JAVA }
+                        ebcdic-cp-ca { IANA JAVA }
+                        ebcdic-cp-wt { IANA JAVA }
+                        ebcdic-cp-nl { IANA JAVA }
+                        csIBM037 { IANA JAVA }
+                        cp037 { JAVA* }
+                        037 { JAVA }
+                        cpibm37 { JAVA }
+                        cp37
+
+ibm-273_P100-1995 { UTR22* }    ibm-273 { IBM* } IBM273 { IANA* JAVA } CP273 { IANA JAVA* } csIBM273 { IANA } ebcdic-de 273 { JAVA }                 # EBCDIC Germanay, Austria
+ibm-277_P100-1995 { UTR22* }    ibm-277 { IBM* } IBM277 { IANA* JAVA } cp277 { JAVA* } EBCDIC-CP-DK { IANA } EBCDIC-CP-NO { IANA } csIBM277 { IANA } ebcdic-dk 277 { JAVA } # EBCDIC Denmark
+ibm-278_P100-1995 { UTR22* }    ibm-278 { IBM* } IBM278 { IANA* JAVA } cp278 { JAVA* } ebcdic-cp-fi { IANA } ebcdic-cp-se { IANA } csIBM278 { IANA } ebcdic-sv { JAVA } 278 { JAVA } # EBCDIC Sweden
+ibm-280_P100-1995 { UTR22* }    ibm-280 { IBM* } IBM280 { IANA* JAVA } CP280 { IANA JAVA* } ebcdic-cp-it { IANA } csIBM280 { IANA } 280 { JAVA }     # EBCDIC Italy
+ibm-284_P100-1995 { UTR22* }    ibm-284 { IBM* } IBM284 { IANA* JAVA } CP284 { IANA JAVA* } ebcdic-cp-es { IANA } csIBM284 { IANA } cpibm284 { JAVA } 284 { JAVA }       # EBCDIC Spain
+ibm-285_P100-1995 { UTR22* }    ibm-285 { IBM* } IBM285 { IANA* JAVA } CP285 { IANA JAVA* } ebcdic-cp-gb { IANA } csIBM285 { IANA } cpibm285 { JAVA } ebcdic-gb { JAVA } 285 { JAVA } # EBCDIC UK Ireland
+ibm-290_P100-1995 { UTR22* }    ibm-290 { IBM* } IBM290 { IANA* } cp290 { IANA } EBCDIC-JP-kana { IANA } csIBM290 { IANA } # host SBCS (Katakana)
+ibm-297_P100-1995 { UTR22* }    ibm-297 { IBM* } IBM297 { IANA* JAVA } cp297 { IANA JAVA* } ebcdic-cp-fr { IANA } csIBM297 { IANA } cpibm297 { JAVA } 297 { JAVA }     # EBCDIC France
+ibm-420_X120-1999 { UTR22* }    ibm-420 { IBM* } IBM420 { IANA* JAVA } cp420 { IANA JAVA* } ebcdic-cp-ar1 { IANA } csIBM420 { IANA } 420 { JAVA }    # EBCDIC Arabic (all presentation shapes)
+ibm-424_P100-1995 { UTR22* }    ibm-424 { IBM* } IBM424 { IANA* JAVA } cp424 { IANA JAVA* } ebcdic-cp-he { IANA } csIBM424 { IANA } 424 { JAVA }     # EBCDIC Hebrew
+ibm-500_P100-1995 { UTR22* }    ibm-500 { IBM* } IBM500 { IANA* JAVA } CP500 { IANA JAVA* } ebcdic-cp-be { IANA } csIBM500 { IANA } ebcdic-cp-ch { IANA } 500   # EBCDIC International Latin1
+ibm-803_P100-1999 { UTR22* }    ibm-803 { IBM* } cp803   # Old EBCDIC Hebrew
+ibm-838_P100-1995 { UTR22* }    ibm-838 { IBM* } IBM838 { JAVA } IBM-Thai { IANA* JAVA } csIBMThai { IANA } cp838 { JAVA* } 838 { JAVA } ibm-9030 { IBM }   # EBCDIC Thai. Yes ibm-9030 is an alias.
+ibm-870_P100-1995 { UTR22* }    ibm-870 { IBM* } IBM870 { IANA* JAVA } CP870 { IANA JAVA* } ebcdic-cp-roece { IANA } ebcdic-cp-yu { IANA } csIBM870 { IANA }    # EBCDIC Latin 2 
+ibm-871_P100-1995 { UTR22* }    ibm-871 { IBM* } IBM871 { IANA* JAVA } ebcdic-cp-is { IANA JAVA } csIBM871 { IANA JAVA } CP871 { IANA JAVA* } ebcdic-is { JAVA } 871 { JAVA }     # EBCDIC Iceland
+ibm-875_P100-1995 { UTR22* }    ibm-875 { IBM* } IBM875 { JAVA } cp875 { JAVA* } 875 { JAVA } x-IBM875 { JAVA } # EBCDIC Greek
+ibm-918_P100-1995 { UTR22* }    ibm-918 { IBM* } IBM918 { IANA* JAVA } CP918 { IANA JAVA* } ebcdic-cp-ar2 { IANA } csIBM918 { IANA }        # EBCDIC Urdu
+ibm-930_P120-1999 { UTR22* }    # EBCDIC_STATEFUL Katakana-Kanji Host Mixed.
+                        ibm-930 { IBM* }
+                        ibm-5026 { IBM } # Yes this is correct
+                        IBM930 { JAVA }
+                        cp930 { JAVA* }
+                        930 { JAVA }
+                        x-IBM930 { JAVA }
+                        x-IBM930A { JAVA }
+ibm-933_P110-1995 { UTR22* }    ibm-933 { IBM* JAVA } cp933 { JAVA* } 933 { JAVA } x-IBM933 { JAVA } # Korea EBCDIC MIXED
+ibm-935_P110-1999 { UTR22* }    ibm-935 { IBM* JAVA } cp935 { JAVA* } 935 { JAVA } x-IBM935 { JAVA } # China EBCDIC MIXED. Need to use Unicode, ibm-1388 or gb18030 instead because it is required by the government of China.
+ibm-937_P110-1999 { UTR22* }    ibm-937 { IBM* JAVA } cp937 { JAVA* } 937 { JAVA } x-IBM937 { JAVA } # Taiwan EBCDIC MIXED
+ibm-939_P120-1999 { UTR22* }    # EBCDIC_STATEFUL Latin-Kanji Host Mixed.
+                        ibm-939 { IBM* }
+                        ibm-931 { IBM }     # Yes this is correct
+                        ibm-5035 { IBM }    # Yes this is also correct
+                        IBM939 { JAVA }
+                        cp939 { JAVA* }
+                        939 { JAVA }
+                        x-IBM939 { JAVA }
+                        x-IBM939A { JAVA }
+ibm-1025_P100-1995 { UTR22* }   ibm-1025 { IBM* JAVA } cp1025 { JAVA* } 1025 { JAVA } x-IBM1025 { JAVA }  # EBCDIC Cyrillic
+ibm-1026_P100-1995 { UTR22* }   ibm-1026 { IBM* } IBM1026 { IANA* JAVA } CP1026 { IANA JAVA* } csIBM1026 { IANA } 1026 { JAVA } # EBCDIC Turkey 
+ibm-1047_P100-1995 { UTR22* }   ibm-1047 { IBM* } IBM1047 { IANA* JAVA } cp1047 { JAVA* } 1047 { JAVA } # EBCDIC Open systems Latin1
+ibm-1097_P100-1995 { UTR22* }   ibm-1097 { IBM* JAVA } cp1097 { JAVA* } 1097 { JAVA } x-IBM1097 { JAVA }  # EBCDIC Farsi
+ibm-1112_P100-1995 { UTR22* }   ibm-1112 { IBM* JAVA } cp1112 { JAVA* } 1112 { JAVA } x-IBM1112 { JAVA }  # EBCDIC Baltic
+ibm-1114_P100-2001 { UTR22* }   ibm-1114 { IBM* } x-IBM1114 { JAVA* }
+ibm-1115_P100-1995 { UTR22* }   ibm-1115 { IBM* } x-IBM1115 { JAVA* }
+ibm-1122_P100-1999 { UTR22* }   ibm-1122 { IBM* JAVA } cp1122 { JAVA* } 1122 { JAVA } x-IBM1122 { JAVA }  # EBCDIC Estonia 
+ibm-1123_P100-1995 { UTR22* }   ibm-1123 { IBM* JAVA } cp1123 { JAVA* } 1123 { JAVA } x-IBM1123 { JAVA }  # EBCDIC Cyrillic Ukraine
+ibm-1130_P100-1997 { UTR22* }   ibm-1130 { IBM* }       # EBCDIC Vietnamese
+ibm-1132_P100-1998 { UTR22* }   ibm-1132 { IBM* }       # EBCDIC Lao
+ibm-1137_P100-1999 { UTR22* }   ibm-1137 { IBM* }       # Devanagari EBCDIC (based on Unicode character set)
+ibm-4517_P100-2005 { UTR22* }   ibm-4517 { IBM* }       # EBCDIC Arabic. Update of ibm-421
+
+# with Euro
+ibm-1140_P100-1997 { UTR22* }   ibm-1140 { IBM* } IBM01140 { IANA* JAVA } CCSID01140 { IANA JAVA } CP01140 { IANA JAVA } cp1140 { JAVA* } ebcdic-us-37+euro { IANA } # EBCDIC US
+ibm-1141_P100-1997 { UTR22* }   ibm-1141 { IBM* } IBM01141 { IANA* JAVA } CCSID01141 { IANA JAVA } CP01141 { IANA JAVA } cp1141 { JAVA* } ebcdic-de-273+euro { IANA } # EBCDIC Germanay, Austria
+ibm-1142_P100-1997 { UTR22* }   ibm-1142 { IBM* } IBM01142 { IANA* JAVA } CCSID01142 { IANA JAVA } CP01142 { IANA JAVA } cp1142 { JAVA* } ebcdic-dk-277+euro { IANA } ebcdic-no-277+euro { IANA } # EBCDIC Denmark
+ibm-1143_P100-1997 { UTR22* }   ibm-1143 { IBM* } IBM01143 { IANA* JAVA } CCSID01143 { IANA JAVA } CP01143 { IANA JAVA } cp1143 { JAVA* } ebcdic-fi-278+euro { IANA } ebcdic-se-278+euro { IANA } # EBCDIC Sweden
+ibm-1144_P100-1997 { UTR22* }   ibm-1144 { IBM* } IBM01144 { IANA* JAVA } CCSID01144 { IANA JAVA } CP01144 { IANA JAVA } cp1144 { JAVA* } ebcdic-it-280+euro { IANA } # EBCDIC Italy
+ibm-1145_P100-1997 { UTR22* }   ibm-1145 { IBM* } IBM01145 { IANA* JAVA } CCSID01145 { IANA JAVA } CP01145 { IANA JAVA } cp1145 { JAVA* } ebcdic-es-284+euro { IANA } # EBCDIC Spain
+ibm-1146_P100-1997 { UTR22* }   ibm-1146 { IBM* } IBM01146 { IANA* JAVA } CCSID01146 { IANA JAVA } CP01146 { IANA JAVA } cp1146 { JAVA* } ebcdic-gb-285+euro { IANA } # EBCDIC UK Ireland
+ibm-1147_P100-1997 { UTR22* }   ibm-1147 { IBM* } IBM01147 { IANA* JAVA } CCSID01147 { IANA JAVA } CP01147 { IANA JAVA } cp1147 { JAVA* } ebcdic-fr-297+euro { IANA } # EBCDIC France
+ibm-1148_P100-1997 { UTR22* }   ibm-1148 { IBM* } IBM01148 { IANA* JAVA } CCSID01148 { IANA JAVA } CP01148 { IANA JAVA } cp1148 { JAVA* } ebcdic-international-500+euro { IANA } # EBCDIC International Latin1
+ibm-1149_P100-1997 { UTR22* }   ibm-1149 { IBM* } IBM01149 { IANA* JAVA } CCSID01149 { IANA JAVA } CP01149 { IANA JAVA } cp1149 { JAVA* } ebcdic-is-871+euro { IANA } # EBCDIC Iceland
+ibm-1153_P100-1999 { UTR22* }   ibm-1153 { IBM* } IBM1153 { JAVA } x-IBM1153 { JAVA* } # EBCDIC latin 2
+ibm-1154_P100-1999 { UTR22* }   ibm-1154 { IBM* }                   # EBCDIC Cyrillic Multilingual
+ibm-1155_P100-1999 { UTR22* }   ibm-1155 { IBM* }                   # EBCDIC Turkey
+ibm-1156_P100-1999 { UTR22* }   ibm-1156 { IBM* }                   # EBCDIC Baltic Multilingual
+ibm-1157_P100-1999 { UTR22* }   ibm-1157 { IBM* }                   # EBCDIC Estonia
+ibm-1158_P100-1999 { UTR22* }   ibm-1158 { IBM* }                   # EBCDIC Cyrillic Ukraine
+ibm-1160_P100-1999 { UTR22* }   ibm-1160 { IBM* }                   # EBCDIC Thailand
+ibm-1164_P100-1999 { UTR22* }   ibm-1164 { IBM* }                   # EBCDIC Viet Nam
+ibm-1364_P110-2007 { UTR22* }   ibm-1364 { IBM* } x-IBM1364 { JAVA* } # Korean Host Mixed
+ibm-1370_P100-1999 { UTR22* }   ibm-1370 { IBM* } x-IBM1370 { JAVA* }
+ibm-1371_P100-1999 { UTR22* }   ibm-1371 { IBM* } x-IBM1371 { JAVA* } # Taiwan EBCDIC MIXED (Euro update of ibm-937)
+ibm-1388_P103-2001 { UTR22* }   ibm-1388 { IBM* } ibm-9580 { IBM } x-IBM1388 { JAVA* } # S-Ch DBCS-Host Data GBK EBCDIC_STATEFUL. Yes ibm-9580 is an alias.
+ibm-1390_P110-2003 { UTR22* }   ibm-1390 { IBM* } x-IBM1390 { JAVA* } # Japan EBCDIC MIXED (JIS X 0213)
+ibm-1399_P110-2003 { UTR22* }   ibm-1399 { IBM* } x-IBM1399 { JAVA* } # Host MBCS (Latin-Kanji) (JIS X 0213)
+ibm-5123_P100-1999 { UTR22* }   ibm-5123 { IBM* }                   # Host Roman Jis. Euro update of ibm-1027. SBCS portion of ibm-1390.
+ibm-8482_P100-1999 { UTR22* }   ibm-8482 { IBM* }                   # host SBCS (Katakana). Euro update of ibm-290. SBCS portion of ibm-1399.
+# Yes ibm-20780 is the same as ibm-16684
+ibm-16684_P110-2003 { UTR22* }  ibm-16684 { IBM* } ibm-20780 { IBM } # DBCS Jis + Roman Jis Host. This is the DBCS portion of ibm-1390 and ibm-1399 (JIS X 0213).
+ibm-4899_P100-1998 { UTR22* }   ibm-4899 { IBM* }                   # Old EBCDIC Hebrew. Update of ibm-803
+ibm-4971_P100-1999 { UTR22* }   ibm-4971 { IBM* }                   # EBCDIC Greek. Update of ibm-875 and superceded by ibm-9067
+ibm-9067_X100-2005 { UTR22* }   ibm-9067 { IBM* }                   # EBCDIC Greek. Update of ibm-875 and ibm-4971
+ibm-12712_P100-1998 { UTR22* }  ibm-12712 { IBM* } ebcdic-he        # EBCDIC Hebrew (new sheqel, control characters update). Update of ibm-424
+ibm-16804_X110-1999 { UTR22* }  ibm-16804 { IBM* } ebcdic-ar        # EBCDIC Arabic. Update of ibm-420
+
+java-Cp1399A-1.6_P { UTR22* }   x-IBM1399A { JAVA* }
+java-Cp420s-1.6_P { UTR22* }    x-IBM420S { JAVA* }
+java-Cp1390A-1.6_P { UTR22* }   x-IBM1390A { JAVA* }
+
+# EBCDIC codepages for S/390, with LF and NL codes swapped
+# Starting with ICU 2.4, the swapping is done by modifying the
+# normal tables at runtime instead of at build time.
+# Append UCNV_SWAP_LFNL_OPTION_STRING to the "ibm-CCSID" name to select this.
+#
+# Example: "ibm-1047,swaplfnl" or "ibm-1047" UCNV_SWAP_LFNL_OPTION_STRING
+#
+# This avoids the duplication of all EBCDIC SBCS and mixed-SBCS/DBCS
+# mapping files.
+
+# Some examples below for declaring old-style, obsolete aliases with the "-s390"
+# suffix to map to the new-style, recommended names with the option added.
+# These are listed here for backward compatibility.
+# Do not use these; instead use the normal converter name with the option
+# added as recommended above.
+
+# Note: It is not possible to define an alias (non-initial name in a line here)
+# that itself contains a converter option like this one for swapping LF<->NL.
+# Such names would never be found because ucnv_open() will first parse and strip
+# options before looking up a name in this table.
+# ucnv_open() then parses the lookup result (the canonical name on the left
+# in lines here) as well.
+
+# This also means that it is not necessary to add anything to convrtrs.txt
+# for converter names like "ibm-1026,swaplfnl" to work -
+# they are already covered by the normal option parsing together with the
+# regular, option-less alias elsewhere in this file.
+
+ibm-37_P100-1995,swaplfnl     ibm-37-s390 # ibm037-s390 also matches ibm-37-s390
+ibm-924_P100-1998,swaplfnl    ibm-924-s390 IBM924_LF { JAVA* }
+ibm-1047_P100-1995,swaplfnl   ibm-1047-s390 IBM1047_LF { JAVA* }
+ibm-1140_P100-1997,swaplfnl   ibm-1140-s390
+ibm-1141_P100-1997,swaplfnl   ibm-1141-s390 IBM1141_LF { JAVA* }
+ibm-1142_P100-1997,swaplfnl   ibm-1142-s390
+ibm-1143_P100-1997,swaplfnl   ibm-1143-s390
+ibm-1144_P100-1997,swaplfnl   ibm-1144-s390
+ibm-1145_P100-1997,swaplfnl   ibm-1145-s390
+ibm-1146_P100-1997,swaplfnl   ibm-1146-s390
+ibm-1147_P100-1997,swaplfnl   ibm-1147-s390
+ibm-1148_P100-1997,swaplfnl   ibm-1148-s390
+ibm-1149_P100-1997,swaplfnl   ibm-1149-s390
+ibm-1153_P100-1999,swaplfnl   ibm-1153-s390
+ibm-12712_P100-1998,swaplfnl  ibm-12712-s390
+ibm-16804_X110-1999,swaplfnl  ibm-16804-s390
+
+# This is a special version of ibm-1140 that the XML4C (Xerces) parser team
+# requested in 2000.
+# It maps both EBCDIC LF and NL controls to Unicode LF U+000A.
+
+ebcdic-xml-us
+
+# These are not installed by default. They are rarely used.
+# Many of them can be added through the online ICU Data Library Customization tool
+
+ibm-1004_P100-1995 { UTR22* }   ibm-1004 { IBM* }
+ibm-1008_P100-1995 { UTR22* }   ibm-1008 { IBM* } # cp1008, 8-bit Arabic (w/o euro update)
+ibm-1009_P100-1995 { UTR22* }   ibm-1009 { IBM* }
+ibm-1010_P100-1995 { UTR22* }   ibm-1010 { IBM* } NF_Z_62-010 { IANA* } iso-ir-69 { IANA } ISO646-FR { IANA } fr { IANA } csISO69French { IANA }
+ibm-1011_P100-1995 { UTR22* }   ibm-1011 { IBM* } DIN_66003 { IANA* } iso-ir-21 { IANA } de { IANA } ISO646-DE { IANA } csISO21German { IANA }
+ibm-1012_P100-1995 { UTR22* }   ibm-1012 { IBM* } IT { IANA* } iso-ir-15 { IANA } ISO646-IT { IANA } csISO15Italian { IANA }
+ibm-1013_P100-1995 { UTR22* }   ibm-1013 { IBM* } BS_4730 { IANA* } iso-ir-4 { IANA } ISO646-GB { IANA } gb { IANA } uk { IANA } csISO4UnitedKingdom { IANA }
+ibm-1014_P100-1995 { UTR22* }   ibm-1014 { IBM* } ES2 { IANA* } iso-ir-85 { IANA } ISO646-ES2 { IANA } csISO85Spanish2 { IANA }
+ibm-1015_P100-1995 { UTR22* }   ibm-1015 { IBM* } PT2 { IANA* } iso-ir-84 { IANA } ISO646-PT2 { IANA } csISO84Portuguese2 { IANA }
+ibm-1016_P100-1995 { UTR22* }   ibm-1016 { IBM* } NS_4551-1 { IANA* } iso-ir-60 { IANA } ISO646-NO { IANA } no { IANA } csISO60DanishNorwegian { IANA } csISO60Norwegian1 { IANA }
+ibm-1017_P100-1995 { UTR22* }   ibm-1017 { IBM* }
+ibm-1018_P100-1995 { UTR22* }   ibm-1018 { IBM* } SEN_850200_B { IANA* } iso-ir-10 { IANA } FI { IANA } ISO646-FI { IANA } ISO646-SE { IANA } se { IANA } csISO10Swedish { IANA }
+ibm-1019_P100-1995 { UTR22* }   ibm-1019 { IBM* }
+ibm-1020_P100-2003 { UTR22* }   ibm-1020 { IBM* } CSA_Z243.4-1985-1 { IANA* } iso-ir-121 { IANA } ISO646-CA { IANA } csa7-1 { IANA } ca { IANA } csISO121Canadian1 { IANA }
+ibm-1021_P100-2003 { UTR22* }   ibm-1021 { IBM* }
+ibm-1023_P100-2003 { UTR22* }   ibm-1023 { IBM* } ES { IANA* } iso-ir-17 { IANA } ISO646-ES { IANA } csISO17Spanish { IANA }
+ibm-1027_P100-1995 { UTR22* }   ibm-1027 { IBM* } x-IBM1027 { JAVA* }
+ibm-1041_P100-1995 { UTR22* }   ibm-1041 { IBM* } x-IBM1041 { JAVA* }
+ibm-1043_P100-1995 { UTR22* }   ibm-1043 { IBM* } x-IBM1043 { JAVA* }
+ibm-1046_X110-1999 { UTR22* }   ibm-1046 { IBM* } x-IBM1046 { JAVA* } x-IBM1046S { JAVA } # Arabic
+ibm-1088_P100-1995 { UTR22* }   ibm-1088 { IBM* } x-IBM1088 { JAVA* }
+ibm-1100_P100-2003 { UTR22* }   ibm-1100 { IBM* } DEC-MCS { IANA* } dec { IANA } csDECMCS { IANA }
+ibm-1101_P100-2003 { UTR22* }   ibm-1101 { IBM* }
+ibm-1102_P100-2003 { UTR22* }   ibm-1102 { IBM* }
+ibm-1103_P100-2003 { UTR22* }   ibm-1103 { IBM* }
+ibm-1104_P100-2003 { UTR22* }   ibm-1104 { IBM* } NF_Z_62-010_1973 iso-ir-25 { IANA* } ISO646-FR1 { IANA } csISO25French { IANA } # NF_Z_62-010_(1973) is the real IANA alias, but () aren't invariant characters.
+ibm-1105_P100-2003 { UTR22* }   ibm-1105 { IBM* }
+ibm-1106_P100-2003 { UTR22* }   ibm-1106 { IBM* }
+ibm-1107_P100-2003 { UTR22* }   ibm-1107 { IBM* } DS_2089 { IANA* } ISO646-DK { IANA } dk { IANA } csISO646Danish { IANA }
+ibm-1127_P100-2004 { UTR22* }   ibm-1127 { IBM* }
+ibm-1161_P100-1999 { UTR22* }   ibm-1161 { IBM* } # Thai (Euro update of ibm-1129)
+ibm-1163_P100-1999 { UTR22* }   ibm-1163 { IBM* } # Vietnamese
+ibm-1165_P101-2000 { UTR22* }   ibm-1165 { IBM* } # Vietnamese (EBCDIC)
+ibm-1166_P100-2002 { UTR22* }   ibm-1166 { IBM* } # Cyrillic for Kazakhstan
+ibm-1167_P100-2002 { UTR22* }   ibm-1167 { IBM* } KOI8-RU x-KOI8_RU { JAVA* }
+ibm-1174_X100-2007 { UTR22* }   ibm-1174 { IBM* } KZ-1048 { IANA* } STRK1048-2002 { IANA } RK1048 { IANA } csKZ1048 { IANA }
+ibm-1277_P100-1995 { UTR22* }   ibm-1277 { IBM* } # Adobe (Postscript) Latin-1
+ibm-13125_P100-1997 { UTR22* }  ibm-13125 { IBM* } # S-Ch (DBCS subset of ibm-4933, ibm-1388)
+ibm-13140_P101-2000 { UTR22* }  ibm-13140 { IBM* }
+ibm-13218_P100-1996 { UTR22* }  ibm-13218 { IBM* } # Japanese (EBCDIC update of ibm-930)
+ibm-1350_P110-1997 { UTR22* }   ibm-1350 { IBM* } x-eucJP-Open { JAVA* } eucJP-Open { JAVA } # Japanese (EUC-JP variant)
+ibm-1351_P110-1997 { UTR22* }   ibm-1351 { IBM* } x-IBM1351 { JAVA* } # Japanese (DBCS subset of ibm-5039)
+ibm-1362_P110-1999 { UTR22* }   ibm-1362 { IBM* } x-IBM1362 { JAVA* } # Korean (DBCS subset of ibm-1363)
+ibm-13676_P102-2001 { UTR22* }  ibm-13676 { IBM* } # Simplified Chinese (EBCDIC)
+ibm-1380_P100-1995 { UTR22* }   ibm-1380 { IBM* } x-IBM1380 { JAVA* } # Simplified Chinese (DBCS subset of ibm-1381)
+ibm-1381_P110-1999 { UTR22* }   ibm-1381 { IBM* JAVA } cp1381 { JAVA* } 1381 { JAVA } x-IBM1381 { JAVA } # Simplified Chinese PC Data mixed (IBM GB) 
+ibm-1382_P100-1995 { UTR22* }   ibm-1382 { IBM* } x-IBM1382 { JAVA* } # Simplified Chinese (DBCS subset of ibm-1383)
+ibm-17221_P100-2001 { UTR22* }  ibm-17221 { IBM* } # Simplified Chinese (EBCDIC)
+ibm-17248_X110-1999 { UTR22* }  ibm-17248 { IBM* } # PC Arabic (w/ euro update) Updated version of ibm-864
+ibm-21344_P101-2000 { UTR22* }  ibm-21344 { IBM* } # PC Arabic. Updated version of ibm-864
+ibm-21427_P100-1999 { UTR22* }  ibm-21427 { IBM* } # Traditional Chinese (DBCS subset of ibm-1370)
+ibm-256_P100-1995 { UTR22* }    ibm-256 { IBM* } # Latin 1 EBCDIC
+ibm-259_P100-1995 { UTR22* }    ibm-259 { IBM* } IBM-Symbols { IANA* } csIBMSymbols { IANA }
+ibm-274_P100-2000 { UTR22* }    ibm-274 { IBM* } IBM274 { IANA* } EBCDIC-BE { IANA } CP274 { IANA } csIBM274 { IANA }
+ibm-275_P100-1995 { UTR22* }    ibm-275 { IBM* } IBM275 { IANA* } EBCDIC-BR { IANA } cp275 { IANA } csIBM275 { IANA }
+ibm-286_P100-2003 { UTR22* }    ibm-286 { IBM* } EBCDIC-AT-DE-A { IANA* } csEBCDICATDEA { IANA }
+ibm-293_P100-1995 { UTR22* }    ibm-293 { IBM* } # APL EBCDIC (APL: A Programming Language)
+ibm-300_P120-2006 { UTR22* }    ibm-300 { IBM* } x-IBM300 { JAVA* } # Japanese (DBCS subset of ibm-930 and ibm-939)
+ibm-301_P110-1997 { UTR22* }    ibm-301 { IBM* } x-IBM301 { JAVA* } # Japanese (DBCS subset of ibm-943)
+ibm-33058_P100-2000 { UTR22* }  ibm-33058 { IBM* } # SBCS (Katakana)
+ibm-425_P101-2000 { UTR22* }    ibm-425 { IBM* } # Arabic (EBCDIC)
+ibm-4930_P110-1999 { UTR22* }   ibm-4930 { IBM* } # Korean (DBCS subset of ibm-1364)
+ibm-4933_P100-2002 { UTR22* }   ibm-4933 { IBM* } # S-Ch (DBCS subset of ibm-1388)
+ibm-4948_P100-1995 { UTR22* }   ibm-4948 { IBM* }
+ibm-4951_P100-1995 { UTR22* }   ibm-4951 { IBM* }
+ibm-4952_P100-1995 { UTR22* }   ibm-4952 { IBM* }
+ibm-4960_P100-1995 { UTR22* }   ibm-4960 { IBM* }
+ibm-5039_P11A-1998 { UTR22* }   ibm-5039 { IBM* } # Japanese (HP Shift-JIS variant)
+ibm-5048_P100-1995 { UTR22* }   ibm-5048 { IBM* } # Japanese (DBCS subset of ibm-1350, JIS X208-1990)
+ibm-5049_P100-1995 { UTR22* }   ibm-5049 { IBM* } # Japanese (DBCS subset of ibm-1350, JIS X212)
+ibm-5067_P100-1995 { UTR22* }   ibm-5067 { IBM* } # Korean (DBCS subset of ibm-21450)
+ibm-5104_X110-1999 { UTR22* }   ibm-5104 { IBM* } # cp1008, 8-bit Arabic (w/ euro update)
+ibm-5233_P100-2011 { UTR22* }   ibm-5233 { IBM* } # Devanagari EBCDIC, including Indian Rupee
+ibm-806_P100-1998 { UTR22* }    ibm-806 { IBM* } # Hindi (ISCII variant)
+ibm-808_P100-1999 { UTR22* }    ibm-808 { IBM* } x-IBM808 { JAVA* } # Cyrillic
+ibm-833_P100-1995 { UTR22* }    ibm-833 { IBM* } x-IBM833 { JAVA* }
+ibm-834_P100-1995 { UTR22* }    ibm-834 { IBM* } x-IBM834 { JAVA* } # Korean (DBCS subset of ibm-933)
+ibm-835_P100-1995 { UTR22* }    ibm-835 { IBM* } x-IBM835 { JAVA* } # Traditional Chinese (DBCS subset of ibm-5033)
+ibm-836_P100-1995 { UTR22* }    ibm-836 { IBM* } x-IBM836 { JAVA* }
+ibm-837_P100-2011 { UTR22* }    ibm-837 { IBM* } x-IBM837 { JAVA* } # Simplified Chinese (DBCS subset of ibm-5031)
+ibm-848_P100-1999 { UTR22* }    ibm-848 { IBM* } # Cyrillic (euro update of ibm-1125)
+ibm-849_P100-1999 { UTR22* }    ibm-849 { IBM* } # Cyrillic Belarus (euro update of ibm-1131)
+ibm-859_P100-1999 { UTR22* }    ibm-859 { IBM* } x-IBM859 { JAVA* } # PC Latin 9 (w/ euro update)
+ibm-8612_P100-1995 { UTR22* }   ibm-8612 { IBM* } # Arabic (EBCDIC update of ibm-420)
+ibm-872_P100-1999 { UTR22* }    ibm-872 { IBM* } # Cyrillic (Euro update of ibm-855)
+ibm-880_P100-1995 { UTR22* }    ibm-880 { IBM* } IBM880 { IANA* } cp880 { IANA } EBCDIC-Cyrillic { IANA } csIBM880 { IANA } windows-20880 { WINDOWS* }
+ibm-896_P100-1995 { UTR22* }    ibm-896 { IBM* } # SBCS Katakana
+ibm-897_P100-1995 { UTR22* }    ibm-897 { IBM* } JIS_X0201 { IANA* } X0201 { IANA } csHalfWidthKatakana { IANA } x-IBM897 { JAVA* }
+ibm-9027_P100-1999 { UTR22* }   ibm-9027 { IBM* } # DBCS T-Ch Host. Euro update of ibm-835. DBCS portion of ibm-1371.
+ibm-9048_P100-1998 { UTR22* }   ibm-9048 { IBM* } # Hebrew (Euro and Sequel update of ibm-856)
+ibm-905_P100-1995 { UTR22* }    ibm-905 { IBM* } IBM905 { IANA* } CP905 { IANA } ebcdic-cp-tr { IANA } csIBM905 { IANA } windows-20905 { WINDOWS* }
+ibm-9056_P100-1995 { UTR22* }   ibm-9056 { IBM* } # Arabic
+ibm-9061_P100-1999 { UTR22* }   ibm-9061 { IBM* } # Greek (w/ euro update)
+ibm-9145_P110-1997 { UTR22* }   ibm-9145 { IBM* } # Japanese (DBCS subset of ibm-5050)
+ibm-9238_X110-1999 { UTR22* }   ibm-9238 { IBM* } # cp1046, PC Arabic Extended (w/ euro update)
+ibm-924_P100-1998 { UTR22* }    ibm-924 { IBM* } IBM00924 { IANA* } CCSID00924 { IANA } CP00924 { IANA } ebcdic-Latin9--euro { IANA }
+ibm-926_P100-2000 { UTR22* }    ibm-926 { IBM* } # Korean (DBCS subset of ibm-944)
+ibm-927_P100-1995 { UTR22* }    ibm-927 { IBM* } x-IBM927 { JAVA* } # Traditional Chinese (DBCS subset of ibm-948)
+ibm-928_P100-1995 { UTR22* }    ibm-928 { IBM* } # Simplified Chinese (DBCS subset of ibm-936)
+ibm-941_P13A-2001 { UTR22* }    ibm-941 { IBM* } # DBCS portion of ibm-943
+ibm-944_P100-1995 { UTR22* }    ibm-944 { IBM* } # Korean
+ibm-946_P100-1995 { UTR22* }    ibm-946 { IBM* } # Simplified Chinese
+ibm-947_P100-1995 { UTR22* }    ibm-947 { IBM* } x-IBM947 { JAVA* } # Traditional Chinese (DBCS subset of ibm-950)
+ibm-948_P110-1999 { UTR22* }    ibm-948 { IBM* } x-IBM948 { JAVA* } # Traditional Chinese
+ibm-951_P100-1995 { UTR22* }    ibm-951 { IBM* } x-IBM951 { JAVA* } # Korean (DBCS subset of ibm-949)
+ibm-952_P110-1997 { UTR22* }    ibm-952 { IBM* } x-JIS0208 # Pure DBCS, Japanese EUC, G1 - JIS X208-1990
+ibm-953_P100-2000 { UTR22* }    ibm-953 { IBM* } JIS_X0212-1990 { IANA* } # Pure DBCS, Japanese EUC, G3 - JIS X 0212-1990
+ibm-955_P110-1997 { UTR22* }    ibm-955 { IBM* } # Pure DBCS, Japanese EUC, G0 - JIS X208-1978
+ibm-9577_P100-2001 { UTR22* }   ibm-9577 { IBM* } ibm-1385 { IBM } x-IBM1385 { JAVA* } # ibm-9577 and ibm-1385 are identical DBCS tables.
+iso-8859_16-2001 { UTR22* }     ISO-8859-16 { IANA* } iso-ir-226 { IANA } ISO_8859-16:2001 { IANA } latin10 { IANA } l10 { IANA }
+
+# To be considered for listing at a later date for the data library customization tool
+#ibm-1159_P100-1999 { UTR22* }   ibm-1159 { IBM* } # SBCS T-Ch Host. Euro update of ibm-28709. This is used in combination with another CCSID mapping.
+#ibm-960_P100-2000 { UTR22* }    ibm-960 { IBM* } # Pure DBCS, CNS11643 plane 1
+#ibm-963_P100-1995 { UTR22* }    ibm-963 { IBM* } # Pure DBCS, CNS11643 plane 2 Traditional Chinese (DBCS subset of ibm-965)
diff --git a/src/data/sys-file-encoding.c b/src/data/sys-file-encoding.c
deleted file mode 100644 (file)
index 1cf2758..0000000
+++ /dev/null
@@ -1,1708 +0,0 @@
-/* -*- mode: c; buffer-read-only: t -*-
-
-   Generated by sys-file-encoding.pl.  Do not modify!
-*/
-
-/*
-PSPP - a program for statistical analysis.
-Copyright (C) 2017 Free Software Foundation, Inc.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program 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 General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <config.h>
-
-#include "data/sys-file-private.h"
-
-struct sys_encoding sys_codepage_number_to_name[] = {
-  { 37, "IBM037" },
-  { 256, "ibm-256" },
-  { 259, "IBM-Symbols" },
-  { 273, "IBM273" },
-  { 274, "IBM274" },
-  { 275, "IBM275" },
-  { 277, "IBM277" },
-  { 278, "IBM278" },
-  { 280, "IBM280" },
-  { 284, "IBM284" },
-  { 285, "IBM285" },
-  { 286, "EBCDIC-AT-DE-A" },
-  { 290, "IBM290" },
-  { 293, "ibm-293" },
-  { 297, "IBM297" },
-  { 300, "ibm-300" },
-  { 301, "ibm-301" },
-  { 367, "ANSI_X3.4-1968" },
-  { 420, "IBM420" },
-  { 424, "IBM424" },
-  { 425, "ibm-425" },
-  { 437, "IBM437" },
-  { 500, "IBM500" },
-  { 720, "windows-720" },
-  { 737, "windows-737" },
-  { 775, "IBM775" },
-  { 803, "ibm-803" },
-  { 806, "ibm-806" },
-  { 808, "ibm-808" },
-  { 813, "ISO-8859-7" },
-  { 819, "ISO_8859-1:1987" },
-  { 833, "ibm-833" },
-  { 834, "ibm-834" },
-  { 835, "ibm-835" },
-  { 836, "ibm-836" },
-  { 837, "ibm-837" },
-  { 838, "IBM-Thai" },
-  { 848, "ibm-848" },
-  { 849, "ibm-849" },
-  { 850, "IBM850" },
-  { 851, "IBM851" },
-  { 852, "IBM852" },
-  { 855, "IBM855" },
-  { 856, "cp856" },
-  { 857, "IBM857" },
-  { 858, "IBM00858" },
-  { 859, "ibm-859" },
-  { 860, "IBM860" },
-  { 861, "IBM861" },
-  { 862, "IBM862" },
-  { 863, "IBM863" },
-  { 864, "IBM864" },
-  { 865, "IBM865" },
-  { 866, "IBM866" },
-  { 867, "ibm-867" },
-  { 868, "IBM868" },
-  { 869, "IBM869" },
-  { 870, "IBM870" },
-  { 871, "IBM871" },
-  { 872, "ibm-872" },
-  { 874, "windows-874" },
-  { 875, "cp875" },
-  { 878, "KOI8-R" },
-  { 880, "IBM880" },
-  { 896, "ibm-896" },
-  { 897, "JIS_X0201" },
-  { 901, "ibm-901" },
-  { 902, "ibm-902" },
-  { 905, "IBM905" },
-  { 912, "ISO_8859-2:1987" },
-  { 913, "ISO_8859-3:1988" },
-  { 914, "ISO_8859-4:1988" },
-  { 915, "ISO_8859-5:1988" },
-  { 916, "ibm-916" },
-  { 918, "IBM918" },
-  { 920, "ISO_8859-9:1989" },
-  { 921, "ISO-8859-13" },
-  { 922, "cp922" },
-  { 923, "ISO-8859-15" },
-  { 924, "IBM00924" },
-  { 926, "ibm-926" },
-  { 927, "ibm-927" },
-  { 928, "ibm-928" },
-  { 930, "cp930" },
-  { 932, "Shift_JIS" },
-  { 933, "cp933" },
-  { 935, "cp935" },
-  { 936, "GBK" },
-  { 937, "cp937" },
-  { 939, "cp939" },
-  { 941, "ibm-941" },
-  { 943, "cp943" },
-  { 944, "ibm-944" },
-  { 946, "ibm-946" },
-  { 947, "ibm-947" },
-  { 948, "ibm-948" },
-  { 949, "windows-949" },
-  { 950, "Big5" },
-  { 951, "ibm-951" },
-  { 952, "ibm-952" },
-  { 953, "JIS_X0212-1990" },
-  { 954, "EUC-JP" },
-  { 955, "ibm-955" },
-  { 964, "cp964" },
-  { 970, "EUC-KR" },
-  { 971, "ibm-971" },
-  { 1004, "ibm-1004" },
-  { 1006, "cp1006" },
-  { 1008, "ibm-1008" },
-  { 1009, "ibm-1009" },
-  { 1010, "NF_Z_62-010" },
-  { 1011, "DIN_66003" },
-  { 1012, "IT" },
-  { 1013, "BS_4730" },
-  { 1014, "ES2" },
-  { 1015, "PT2" },
-  { 1016, "NS_4551-1" },
-  { 1017, "ibm-1017" },
-  { 1018, "SEN_850200_B" },
-  { 1019, "ibm-1019" },
-  { 1020, "CSA_Z243.4-1985-1" },
-  { 1021, "ibm-1021" },
-  { 1023, "ES" },
-  { 1025, "cp1025" },
-  { 1026, "IBM1026" },
-  { 1027, "ibm-1027" },
-  { 1041, "ibm-1041" },
-  { 1043, "ibm-1043" },
-  { 1046, "ibm-1046" },
-  { 1047, "IBM1047" },
-  { 1051, "hp-roman8" },
-  { 1088, "ibm-1088" },
-  { 1089, "ISO_8859-6:1987" },
-  { 1097, "cp1097" },
-  { 1098, "cp1098" },
-  { 1100, "DEC-MCS" },
-  { 1101, "ibm-1101" },
-  { 1102, "ibm-1102" },
-  { 1103, "ibm-1103" },
-  { 1104, "iso-ir-25" },
-  { 1105, "ibm-1105" },
-  { 1106, "ibm-1106" },
-  { 1107, "DS_2089" },
-  { 1112, "cp1112" },
-  { 1114, "ibm-1114" },
-  { 1115, "ibm-1115" },
-  { 1122, "cp1122" },
-  { 1123, "cp1123" },
-  { 1124, "cp1124" },
-  { 1125, "ibm-1125" },
-  { 1127, "ibm-1127" },
-  { 1129, "ibm-1129" },
-  { 1130, "ibm-1130" },
-  { 1131, "ibm-1131" },
-  { 1132, "ibm-1132" },
-  { 1133, "ibm-1133" },
-  { 1137, "ibm-1137" },
-  { 1140, "IBM01140" },
-  { 1141, "IBM01141" },
-  { 1142, "IBM01142" },
-  { 1143, "IBM01143" },
-  { 1144, "IBM01144" },
-  { 1145, "IBM01145" },
-  { 1146, "IBM01146" },
-  { 1147, "IBM01147" },
-  { 1148, "IBM01148" },
-  { 1149, "IBM01149" },
-  { 1153, "ibm-1153" },
-  { 1154, "ibm-1154" },
-  { 1155, "ibm-1155" },
-  { 1156, "ibm-1156" },
-  { 1157, "ibm-1157" },
-  { 1158, "ibm-1158" },
-  { 1160, "ibm-1160" },
-  { 1161, "ibm-1161" },
-  { 1162, "ibm-1162" },
-  { 1163, "ibm-1163" },
-  { 1164, "ibm-1164" },
-  { 1165, "ibm-1165" },
-  { 1166, "ibm-1166" },
-  { 1167, "ibm-1167" },
-  { 1168, "KOI8-U" },
-  { 1174, "KZ-1048" },
-  { 1200, "UTF-16LE" },
-  { 1201, "UTF-16BE" },
-  { 1205, "UTF-16" },
-  { 1213, "SCSU" },
-  { 1215, "BOCU-1" },
-  { 1235, "UTF-32LE" },
-  { 1237, "UTF-32" },
-  { 1250, "windows-1250" },
-  { 1251, "windows-1251" },
-  { 1252, "windows-1252" },
-  { 1253, "windows-1253" },
-  { 1254, "windows-1254" },
-  { 1255, "windows-1255" },
-  { 1256, "windows-1256" },
-  { 1257, "windows-1257" },
-  { 1258, "windows-1258" },
-  { 1276, "Adobe-Standard-Encoding" },
-  { 1277, "ibm-1277" },
-  { 1350, "ibm-1350" },
-  { 1351, "ibm-1351" },
-  { 1362, "ibm-1362" },
-  { 1363, "ibm-1363" },
-  { 1364, "ibm-1364" },
-  { 1370, "ibm-1370" },
-  { 1371, "ibm-1371" },
-  { 1373, "ibm-1373" },
-  { 1375, "Big5-HKSCS" },
-  { 1380, "ibm-1380" },
-  { 1381, "cp1381" },
-  { 1382, "ibm-1382" },
-  { 1383, "GB2312" },
-  { 1385, "ibm-9577" },
-  { 1386, "ibm-1386" },
-  { 1390, "ibm-1390" },
-  { 1392, "gb18030" },
-  { 1399, "ibm-1399" },
-  { 4517, "ibm-4517" },
-  { 4899, "ibm-4899" },
-  { 4902, "ibm-4902" },
-  { 4909, "ibm-4909" },
-  { 4930, "ibm-4930" },
-  { 4933, "ibm-4933" },
-  { 4948, "ibm-4948" },
-  { 4951, "ibm-4951" },
-  { 4952, "ibm-4952" },
-  { 4960, "ibm-4960" },
-  { 4971, "ibm-4971" },
-  { 5012, "ISO_8859-8:1988" },
-  { 5026, "cp930" },
-  { 5035, "cp939" },
-  { 5039, "ibm-5039" },
-  { 5048, "ibm-5048" },
-  { 5049, "ibm-5049" },
-  { 5050, "cp33722" },
-  { 5054, "JIS_Encoding" },
-  { 5067, "ibm-5067" },
-  { 5104, "ibm-5104" },
-  { 5123, "ibm-5123" },
-  { 5346, "windows-1250" },
-  { 5347, "windows-1251" },
-  { 5348, "windows-1252" },
-  { 5349, "windows-1253" },
-  { 5350, "windows-1254" },
-  { 5351, "ibm-5351" },
-  { 5352, "ibm-5352" },
-  { 5353, "ibm-5353" },
-  { 5354, "windows-1258" },
-  { 5471, "MS950_HKSCS" },
-  { 5478, "GB_2312-80" },
-  { 8482, "ibm-8482" },
-  { 8612, "ibm-8612" },
-  { 9005, "ISO_8859-7:1987" },
-  { 9027, "ibm-9027" },
-  { 9030, "IBM-Thai" },
-  { 9048, "ibm-9048" },
-  { 9056, "ibm-9056" },
-  { 9061, "ibm-9061" },
-  { 9066, "TIS-620" },
-  { 9067, "ibm-9067" },
-  { 9145, "ibm-9145" },
-  { 9238, "ibm-9238" },
-  { 9400, "CESU-8" },
-  { 9424, "UTF-32BE" },
-  { 9447, "windows-1255" },
-  { 9448, "windows-1256" },
-  { 9449, "windows-1257" },
-  { 9580, "ibm-1388" },
-  { 10000, "macintosh" },
-  { 10006, "windows-10006" },
-  { 10007, "windows-10007" },
-  { 10029, "windows-10029" },
-  { 10081, "windows-10081" },
-  { 12712, "ibm-12712" },
-  { 13125, "ibm-13125" },
-  { 13140, "ibm-13140" },
-  { 13218, "ibm-13218" },
-  { 13676, "ibm-13676" },
-  { 16804, "ibm-16804" },
-  { 17221, "ibm-17221" },
-  { 17248, "ibm-17248" },
-  { 17593, "UTF-8" },
-  { 20127, "ANSI_X3.4-1968" },
-  { 20780, "ibm-16684" },
-  { 20866, "KOI8-R" },
-  { 20880, "IBM880" },
-  { 20905, "IBM905" },
-  { 21344, "ibm-21344" },
-  { 21427, "ibm-21427" },
-  { 21866, "KOI8-U" },
-  { 25546, "ibm-25546" },
-  { 28592, "ISO_8859-2:1987" },
-  { 28593, "ISO_8859-3:1988" },
-  { 28594, "ISO_8859-4:1988" },
-  { 28595, "ISO_8859-5:1988" },
-  { 28596, "ISO_8859-6:1987" },
-  { 28597, "ISO_8859-7:1987" },
-  { 28598, "ISO_8859-8:1988" },
-  { 28599, "ISO_8859-9:1989" },
-  { 28603, "ISO-8859-13" },
-  { 28605, "ISO-8859-15" },
-  { 29875, "UTF-16LE" },
-  { 33058, "ibm-33058" },
-  { 33722, "cp33722" },
-  { 51932, "Extended_UNIX_Code_Packed_Format_for_Japanese" },
-  { 51949, "EUC-KR" },
-  { 54936, "gb18030" },
-  { 57002, "ibm-4902" },
-  { 57004, "windows-57004" },
-  { 57005, "windows-57005" },
-  { 57006, "windows-57003" },
-  { 57007, "windows-57007" },
-  { 57008, "windows-57008" },
-  { 57009, "windows-57009" },
-  { 57010, "windows-57010" },
-  { 57011, "windows-57011" },
-  { 61956, "UTF-16BE" },
-  { 65000, "UTF-7" },
-  { 65001, "UTF-8" },
-  { 65025, "ibm-65025" },
-  { 0, NULL }
-};
-
-struct sys_encoding sys_codepage_name_to_number[] = {
-  { 37, "037" },
-  { 1006, "1006" },
-  { 1025, "1025" },
-  { 1026, "1026" },
-  { 1047, "1047" },
-  { 28596, "1089" },
-  { 1097, "1097" },
-  { 1098, "1098" },
-  { 1112, "1112" },
-  { 1122, "1122" },
-  { 1123, "1123" },
-  { 1124, "1124" },
-  { 1381, "1381" },
-  { 1383, "1383" },
-  { 273, "273" },
-  { 277, "277" },
-  { 278, "278" },
-  { 280, "280" },
-  { 284, "284" },
-  { 285, "285" },
-  { 297, "297" },
-  { 5050, "33722" },
-  { 420, "420" },
-  { 424, "424" },
-  { 437, "437" },
-  { 51949, "5601" },
-  { 20127, "646" },
-  { 737, "737" },
-  { 775, "775" },
-  { 813, "813" },
-  { 819, "819" },
-  { 9030, "838" },
-  { 850, "850" },
-  { 851, "851" },
-  { 852, "852" },
-  { 855, "855" },
-  { 856, "856" },
-  { 857, "857" },
-  { 860, "860" },
-  { 861, "861" },
-  { 862, "862" },
-  { 863, "863" },
-  { 865, "865" },
-  { 866, "866" },
-  { 868, "868" },
-  { 869, "869" },
-  { 871, "871" },
-  { 875, "875" },
-  { 819, "8859_1" },
-  { 28603, "8859_13" },
-  { 28605, "8859_15" },
-  { 28592, "8859_2" },
-  { 28593, "8859_3" },
-  { 28594, "8859_4" },
-  { 28595, "8859_5" },
-  { 28596, "8859_6" },
-  { 813, "8859_7" },
-  { 28598, "8859_8" },
-  { 28599, "8859_9" },
-  { 28592, "912" },
-  { 28593, "913" },
-  { 28594, "914" },
-  { 28595, "915" },
-  { 916, "916" },
-  { 28599, "920" },
-  { 922, "922" },
-  { 28605, "923" },
-  { 5026, "930" },
-  { 933, "933" },
-  { 935, "935" },
-  { 937, "937" },
-  { 5035, "939" },
-  { 943, "943" },
-  { 949, "949" },
-  { 950, "950" },
-  { 964, "964" },
-  { 51949, "970" },
-  { 20127, "ANSI_X3.4-1968" },
-  { 20127, "ANSI_X3.4-1986" },
-  { 20127, "ASCII" },
-  { 28596, "ASMO-708" },
-  { 1276, "Adobe-Standard-Encoding" },
-  { 1215, "BOCU-1" },
-  { 1013, "BS_4730" },
-  { 950, "Big5" },
-  { 1375, "Big5-HKSCS" },
-  { 858, "CCSID00858" },
-  { 924, "CCSID00924" },
-  { 1140, "CCSID01140" },
-  { 1141, "CCSID01141" },
-  { 1142, "CCSID01142" },
-  { 1143, "CCSID01143" },
-  { 1144, "CCSID01144" },
-  { 1145, "CCSID01145" },
-  { 1146, "CCSID01146" },
-  { 1147, "CCSID01147" },
-  { 1148, "CCSID01148" },
-  { 1149, "CCSID01149" },
-  { 9400, "CESU-8" },
-  { 858, "CP00858" },
-  { 924, "CP00924" },
-  { 1140, "CP01140" },
-  { 1141, "CP01141" },
-  { 1142, "CP01142" },
-  { 1143, "CP01143" },
-  { 1144, "CP01144" },
-  { 1145, "CP01145" },
-  { 1146, "CP01146" },
-  { 1147, "CP01147" },
-  { 1148, "CP01148" },
-  { 1149, "CP01149" },
-  { 1026, "CP1026" },
-  { 273, "CP273" },
-  { 274, "CP274" },
-  { 280, "CP280" },
-  { 284, "CP284" },
-  { 285, "CP285" },
-  { 500, "CP500" },
-  { 868, "CP868" },
-  { 870, "CP870" },
-  { 871, "CP871" },
-  { 20905, "CP905" },
-  { 918, "CP918" },
-  { 936, "CP936" },
-  { 1020, "CSA_Z243.4-1985-1" },
-  { 1100, "DEC-MCS" },
-  { 1011, "DIN_66003" },
-  { 720, "DOS-720" },
-  { 862, "DOS-862" },
-  { 1107, "DS_2089" },
-  { 286, "EBCDIC-AT-DE-A" },
-  { 274, "EBCDIC-BE" },
-  { 275, "EBCDIC-BR" },
-  { 277, "EBCDIC-CP-DK" },
-  { 277, "EBCDIC-CP-NO" },
-  { 20880, "EBCDIC-Cyrillic" },
-  { 290, "EBCDIC-JP-kana" },
-  { 28596, "ECMA-114" },
-  { 28597, "ECMA-118" },
-  { 28597, "ELOT_928" },
-  { 1023, "ES" },
-  { 1014, "ES2" },
-  { 51932, "EUC-JP" },
-  { 51949, "EUC-KR" },
-  { 51932, "Extended_UNIX_Code_Packed_Format_for_Japanese" },
-  { 1018, "FI" },
-  { 54936, "GB18030" },
-  { 1383, "GB2312" },
-  { 936, "GBK" },
-  { 5478, "GB_2312-80" },
-  { 259, "IBM-Symbols" },
-  { 9030, "IBM-Thai" },
-  { 858, "IBM00858" },
-  { 924, "IBM00924" },
-  { 1140, "IBM01140" },
-  { 1141, "IBM01141" },
-  { 1142, "IBM01142" },
-  { 1143, "IBM01143" },
-  { 1144, "IBM01144" },
-  { 1145, "IBM01145" },
-  { 1146, "IBM01146" },
-  { 1147, "IBM01147" },
-  { 1148, "IBM01148" },
-  { 1149, "IBM01149" },
-  { 37, "IBM037" },
-  { 1006, "IBM1006" },
-  { 1026, "IBM1026" },
-  { 1047, "IBM1047" },
-  { 1098, "IBM1098" },
-  { 1153, "IBM1153" },
-  { 273, "IBM273" },
-  { 274, "IBM274" },
-  { 275, "IBM275" },
-  { 277, "IBM277" },
-  { 278, "IBM278" },
-  { 280, "IBM280" },
-  { 284, "IBM284" },
-  { 285, "IBM285" },
-  { 290, "IBM290" },
-  { 297, "IBM297" },
-  { 20127, "IBM367" },
-  { 420, "IBM420" },
-  { 424, "IBM424" },
-  { 437, "IBM437" },
-  { 500, "IBM500" },
-  { 737, "IBM737" },
-  { 775, "IBM775" },
-  { 819, "IBM819" },
-  { 9030, "IBM838" },
-  { 850, "IBM850" },
-  { 851, "IBM851" },
-  { 852, "IBM852" },
-  { 855, "IBM855" },
-  { 856, "IBM856" },
-  { 857, "IBM857" },
-  { 860, "IBM860" },
-  { 861, "IBM861" },
-  { 862, "IBM862" },
-  { 863, "IBM863" },
-  { 864, "IBM864" },
-  { 865, "IBM865" },
-  { 866, "IBM866" },
-  { 868, "IBM868" },
-  { 869, "IBM869" },
-  { 870, "IBM870" },
-  { 871, "IBM871" },
-  { 875, "IBM875" },
-  { 20880, "IBM880" },
-  { 20905, "IBM905" },
-  { 918, "IBM918" },
-  { 922, "IBM922" },
-  { 5026, "IBM930" },
-  { 5035, "IBM939" },
-  { 1205, "ISO-10646-UCS-2" },
-  { 1237, "ISO-10646-UCS-4" },
-  { 5054, "ISO-2022-JP-1" },
-  { 819, "ISO-8859-1" },
-  { 28603, "ISO-8859-13" },
-  { 28605, "ISO-8859-15" },
-  { 28592, "ISO-8859-2" },
-  { 28593, "ISO-8859-3" },
-  { 28594, "ISO-8859-4" },
-  { 28595, "ISO-8859-5" },
-  { 28596, "ISO-8859-6" },
-  { 28596, "ISO-8859-6-E" },
-  { 28596, "ISO-8859-6-I" },
-  { 28597, "ISO-8859-7" },
-  { 28598, "ISO-8859-8" },
-  { 28598, "ISO-8859-8-E" },
-  { 28598, "ISO-8859-8-I" },
-  { 28599, "ISO-8859-9" },
-  { 1020, "ISO646-CA" },
-  { 1011, "ISO646-DE" },
-  { 1107, "ISO646-DK" },
-  { 1023, "ISO646-ES" },
-  { 1014, "ISO646-ES2" },
-  { 1018, "ISO646-FI" },
-  { 1010, "ISO646-FR" },
-  { 1104, "ISO646-FR1" },
-  { 1013, "ISO646-GB" },
-  { 1012, "ISO646-IT" },
-  { 1016, "ISO646-NO" },
-  { 1015, "ISO646-PT2" },
-  { 1018, "ISO646-SE" },
-  { 20127, "ISO646-US" },
-  { 20127, "ISO_646.irv:1991" },
-  { 819, "ISO_8859-1:1987" },
-  { 28592, "ISO_8859-2:1987" },
-  { 28593, "ISO_8859-3:1988" },
-  { 28594, "ISO_8859-4:1988" },
-  { 28595, "ISO_8859-5:1988" },
-  { 28596, "ISO_8859-6:1987" },
-  { 28597, "ISO_8859-7:1987" },
-  { 28598, "ISO_8859-8:1988" },
-  { 28599, "ISO_8859-9:1989" },
-  { 1012, "IT" },
-  { 5054, "JIS_Encoding" },
-  { 897, "JIS_X0201" },
-  { 953, "JIS_X0212-1990" },
-  { 20866, "KOI8-R" },
-  { 21866, "KOI8-U" },
-  /* KSC_5601 has multiple numbers for windows: 949 51949 */
-  { 949, "KSC_5601" },
-  /* KS_C_5601-1987 has multiple numbers for windows: 949 51949 */
-  { 949, "KS_C_5601-1987" },
-  { 949, "KS_C_5601-1989" },
-  { 1174, "KZ-1048" },
-  { 28605, "Latin-9" },
-  { 874, "MS874" },
-  { 936, "MS936" },
-  { 5471, "MS950_HKSCS" },
-  { 932, "MS_Kanji" },
-  { 1010, "NF_Z_62-010" },
-  { 1016, "NS_4551-1" },
-  { 858, "PC-Multilingual-850+euro" },
-  { 1015, "PT2" },
-  { 1174, "RK1048" },
-  { 1213, "SCSU" },
-  { 1018, "SEN_850200_B" },
-  { 1174, "STRK1048-2002" },
-  { 932, "Shift_JIS" },
-  { 874, "TIS-620" },
-  { 20127, "US-ASCII" },
-  { 1205, "UTF-16" },
-  { 1201, "UTF-16BE" },
-  { 1200, "UTF-16LE" },
-  { 1237, "UTF-32" },
-  { 9424, "UTF-32BE" },
-  { 1235, "UTF-32LE" },
-  { 65000, "UTF-7" },
-  { 65001, "UTF-8" },
-  { 1201, "UnicodeBigUnmarked" },
-  { 1200, "UnicodeLittleUnmarked" },
-  { 51932, "X-EUC-JP" },
-  { 897, "X0201" },
-  { 28596, "arabic" },
-  { 20127, "ascii7" },
-  { 1375, "big5hk" },
-  { 1020, "ca" },
-  { 5478, "chinese" },
-  { 868, "cp-ar" },
-  { 869, "cp-gr" },
-  { 861, "cp-is" },
-  { 37, "cp037" },
-  { 1006, "cp1006" },
-  { 1025, "cp1025" },
-  { 1047, "cp1047" },
-  { 28596, "cp1089" },
-  { 1097, "cp1097" },
-  { 1098, "cp1098" },
-  { 1112, "cp1112" },
-  { 1122, "cp1122" },
-  { 1123, "cp1123" },
-  { 1124, "cp1124" },
-  { 1140, "cp1140" },
-  { 1141, "cp1141" },
-  { 1142, "cp1142" },
-  { 1143, "cp1143" },
-  { 1144, "cp1144" },
-  { 1145, "cp1145" },
-  { 1146, "cp1146" },
-  { 1147, "cp1147" },
-  { 1148, "cp1148" },
-  { 1149, "cp1149" },
-  { 1250, "cp1250" },
-  { 1251, "cp1251" },
-  { 1252, "cp1252" },
-  { 1253, "cp1253" },
-  { 1254, "cp1254" },
-  { 1255, "cp1255" },
-  { 1256, "cp1256" },
-  { 1257, "cp1257" },
-  { 1258, "cp1258" },
-  { 1363, "cp1363" },
-  { 1381, "cp1381" },
-  { 1383, "cp1383" },
-  { 275, "cp275" },
-  { 277, "cp277" },
-  { 278, "cp278" },
-  { 290, "cp290" },
-  { 297, "cp297" },
-  { 5050, "cp33722" },
-  { 20127, "cp367" },
-  { 420, "cp420" },
-  { 424, "cp424" },
-  { 437, "cp437" },
-  { 737, "cp737" },
-  { 775, "cp775" },
-  { 813, "cp813" },
-  { 819, "cp819" },
-  { 9030, "cp838" },
-  { 850, "cp850" },
-  { 851, "cp851" },
-  { 852, "cp852" },
-  { 855, "cp855" },
-  { 856, "cp856" },
-  { 857, "cp857" },
-  { 858, "cp858" },
-  { 860, "cp860" },
-  { 861, "cp861" },
-  { 862, "cp862" },
-  { 863, "cp863" },
-  { 864, "cp864" },
-  { 865, "cp865" },
-  { 866, "cp866" },
-  { 869, "cp869" },
-  { 9066, "cp874" },
-  { 875, "cp875" },
-  { 20880, "cp880" },
-  { 28592, "cp912" },
-  { 28593, "cp913" },
-  { 28594, "cp914" },
-  { 28595, "cp915" },
-  { 916, "cp916" },
-  { 28599, "cp920" },
-  { 922, "cp922" },
-  { 28605, "cp923" },
-  { 5026, "cp930" },
-  { 932, "cp932" },
-  { 933, "cp933" },
-  { 935, "cp935" },
-  { 937, "cp937" },
-  { 5035, "cp939" },
-  { 943, "cp943" },
-  { 932, "cp943c" },
-  { 949, "cp949" },
-  { 950, "cp950" },
-  { 964, "cp964" },
-  { 51949, "cp970" },
-  { 284, "cpibm284" },
-  { 285, "cpibm285" },
-  { 297, "cpibm297" },
-  { 37, "cpibm37" },
-  { 20127, "csASCII" },
-  { 1276, "csAdobeStandardEncoding" },
-  { 1215, "csBOCU-1" },
-  { 950, "csBig5" },
-  { 1100, "csDECMCS" },
-  { 286, "csEBCDICATDEA" },
-  { 51949, "csEUCKR" },
-  { 51932, "csEUCPkdFmtJapanese" },
-  { 1383, "csGB2312" },
-  { 1051, "csHPRoman8" },
-  { 897, "csHalfWidthKatakana" },
-  { 37, "csIBM037" },
-  { 1026, "csIBM1026" },
-  { 273, "csIBM273" },
-  { 274, "csIBM274" },
-  { 275, "csIBM275" },
-  { 277, "csIBM277" },
-  { 278, "csIBM278" },
-  { 280, "csIBM280" },
-  { 284, "csIBM284" },
-  { 285, "csIBM285" },
-  { 290, "csIBM290" },
-  { 297, "csIBM297" },
-  { 420, "csIBM420" },
-  { 424, "csIBM424" },
-  { 500, "csIBM500" },
-  { 855, "csIBM855" },
-  { 857, "csIBM857" },
-  { 860, "csIBM860" },
-  { 861, "csIBM861" },
-  { 863, "csIBM863" },
-  { 864, "csIBM864" },
-  { 865, "csIBM865" },
-  { 866, "csIBM866" },
-  { 868, "csIBM868" },
-  { 869, "csIBM869" },
-  { 870, "csIBM870" },
-  { 871, "csIBM871" },
-  { 20880, "csIBM880" },
-  { 20905, "csIBM905" },
-  { 918, "csIBM918" },
-  { 259, "csIBMSymbols" },
-  { 9030, "csIBMThai" },
-  { 1018, "csISO10Swedish" },
-  { 1020, "csISO121Canadian1" },
-  { 1012, "csISO15Italian" },
-  { 1023, "csISO17Spanish" },
-  { 1011, "csISO21German" },
-  { 1104, "csISO25French" },
-  { 1013, "csISO4UnitedKingdom" },
-  { 5478, "csISO58GB231280" },
-  { 1016, "csISO60DanishNorwegian" },
-  { 1016, "csISO60Norwegian1" },
-  { 1107, "csISO646Danish" },
-  { 1010, "csISO69French" },
-  { 1015, "csISO84Portuguese2" },
-  { 1014, "csISO85Spanish2" },
-  { 819, "csISOLatin1" },
-  { 28592, "csISOLatin2" },
-  { 28593, "csISOLatin3" },
-  { 28594, "csISOLatin4" },
-  { 28599, "csISOLatin5" },
-  { 28596, "csISOLatinArabic" },
-  { 28595, "csISOLatinCyrillic" },
-  { 28597, "csISOLatinGreek" },
-  { 28598, "csISOLatinHebrew" },
-  { 5054, "csJISEncoding" },
-  { 20866, "csKOI8R" },
-  { 949, "csKSC56011987" },
-  { 1174, "csKZ1048" },
-  { 10000, "csMacintosh" },
-  { 775, "csPC775Baltic" },
-  { 850, "csPC850Multilingual" },
-  { 851, "csPC851" },
-  { 862, "csPC862LatinHebrew" },
-  { 437, "csPC8CodePage437" },
-  { 852, "csPCp852" },
-  { 855, "csPCp855" },
-  { 932, "csShiftJIS" },
-  { 932, "csWindows31J" },
-  { 1020, "csa7-1" },
-  { 28605, "csisolatin0" },
-  { 28605, "csisolatin9" },
-  { 28595, "cyrillic" },
-  { 1011, "de" },
-  { 1100, "dec" },
-  { 1107, "dk" },
-  { 924, "ebcdic-Latin9--euro" },
-  { 420, "ebcdic-cp-ar1" },
-  { 918, "ebcdic-cp-ar2" },
-  { 500, "ebcdic-cp-be" },
-  { 37, "ebcdic-cp-ca" },
-  { 500, "ebcdic-cp-ch" },
-  { 284, "ebcdic-cp-es" },
-  { 278, "ebcdic-cp-fi" },
-  { 297, "ebcdic-cp-fr" },
-  { 285, "ebcdic-cp-gb" },
-  { 424, "ebcdic-cp-he" },
-  { 871, "ebcdic-cp-is" },
-  { 280, "ebcdic-cp-it" },
-  { 37, "ebcdic-cp-nl" },
-  { 870, "ebcdic-cp-roece" },
-  { 278, "ebcdic-cp-se" },
-  { 20905, "ebcdic-cp-tr" },
-  { 37, "ebcdic-cp-us" },
-  { 37, "ebcdic-cp-wt" },
-  { 870, "ebcdic-cp-yu" },
-  { 1141, "ebcdic-de-273+euro" },
-  { 1142, "ebcdic-dk-277+euro" },
-  { 1145, "ebcdic-es-284+euro" },
-  { 1143, "ebcdic-fi-278+euro" },
-  { 1147, "ebcdic-fr-297+euro" },
-  { 285, "ebcdic-gb" },
-  { 1146, "ebcdic-gb-285+euro" },
-  { 1148, "ebcdic-international-500+euro" },
-  { 871, "ebcdic-is" },
-  { 1149, "ebcdic-is-871+euro" },
-  { 1144, "ebcdic-it-280+euro" },
-  { 1142, "ebcdic-no-277+euro" },
-  { 1143, "ebcdic-se-278+euro" },
-  { 278, "ebcdic-sv" },
-  { 1140, "ebcdic-us-37+euro" },
-  { 1350, "eucJP-Open" },
-  { 954, "eucjis" },
-  { 1010, "fr" },
-  { 1013, "gb" },
-  { 54936, "gb18030" },
-  { 28597, "greek" },
-  { 28597, "greek8" },
-  { 28598, "hebrew" },
-  { 1051, "hp-roman8" },
-  { 1004, "ibm-1004" },
-  { 1004, "ibm-1004_P100-1995" },
-  { 1006, "ibm-1006" },
-  { 1006, "ibm-1006_P100-1995" },
-  { 1008, "ibm-1008" },
-  { 1008, "ibm-1008_P100-1995" },
-  { 1009, "ibm-1009" },
-  { 1009, "ibm-1009_P100-1995" },
-  { 1010, "ibm-1010" },
-  { 1010, "ibm-1010_P100-1995" },
-  { 1011, "ibm-1011" },
-  { 1011, "ibm-1011_P100-1995" },
-  { 1012, "ibm-1012" },
-  { 1012, "ibm-1012_P100-1995" },
-  { 1013, "ibm-1013" },
-  { 1013, "ibm-1013_P100-1995" },
-  { 1014, "ibm-1014" },
-  { 1014, "ibm-1014_P100-1995" },
-  { 1015, "ibm-1015" },
-  { 1015, "ibm-1015_P100-1995" },
-  { 1016, "ibm-1016" },
-  { 1016, "ibm-1016_P100-1995" },
-  { 1017, "ibm-1017" },
-  { 1017, "ibm-1017_P100-1995" },
-  { 1018, "ibm-1018" },
-  { 1018, "ibm-1018_P100-1995" },
-  { 1019, "ibm-1019" },
-  { 1019, "ibm-1019_P100-1995" },
-  { 1020, "ibm-1020" },
-  { 1020, "ibm-1020_P100-2003" },
-  { 1021, "ibm-1021" },
-  { 1021, "ibm-1021_P100-2003" },
-  { 1023, "ibm-1023" },
-  { 1023, "ibm-1023_P100-2003" },
-  { 1025, "ibm-1025" },
-  { 1025, "ibm-1025_P100-1995" },
-  { 1026, "ibm-1026" },
-  { 1026, "ibm-1026_P100-1995" },
-  { 1027, "ibm-1027" },
-  { 1027, "ibm-1027_P100-1995" },
-  { 1041, "ibm-1041" },
-  { 1041, "ibm-1041_P100-1995" },
-  { 1043, "ibm-1043" },
-  { 1043, "ibm-1043_P100-1995" },
-  { 1046, "ibm-1046" },
-  { 1046, "ibm-1046_X110-1999" },
-  { 1047, "ibm-1047" },
-  { 1047, "ibm-1047_P100-1995" },
-  { 1051, "ibm-1051" },
-  { 1051, "ibm-1051_P100-1995" },
-  { 1088, "ibm-1088" },
-  { 1088, "ibm-1088_P100-1995" },
-  { 28596, "ibm-1089" },
-  { 28596, "ibm-1089_P100-1995" },
-  { 1097, "ibm-1097" },
-  { 1097, "ibm-1097_P100-1995" },
-  { 1098, "ibm-1098" },
-  { 1098, "ibm-1098_P100-1995" },
-  { 1100, "ibm-1100" },
-  { 1100, "ibm-1100_P100-2003" },
-  { 1101, "ibm-1101" },
-  { 1101, "ibm-1101_P100-2003" },
-  { 1102, "ibm-1102" },
-  { 1102, "ibm-1102_P100-2003" },
-  { 1103, "ibm-1103" },
-  { 1103, "ibm-1103_P100-2003" },
-  { 1104, "ibm-1104" },
-  { 1104, "ibm-1104_P100-2003" },
-  { 1105, "ibm-1105" },
-  { 1105, "ibm-1105_P100-2003" },
-  { 1106, "ibm-1106" },
-  { 1106, "ibm-1106_P100-2003" },
-  { 1107, "ibm-1107" },
-  { 1107, "ibm-1107_P100-2003" },
-  { 1112, "ibm-1112" },
-  { 1112, "ibm-1112_P100-1995" },
-  { 1114, "ibm-1114" },
-  { 1114, "ibm-1114_P100-2001" },
-  { 1115, "ibm-1115" },
-  { 1115, "ibm-1115_P100-1995" },
-  { 1122, "ibm-1122" },
-  { 1122, "ibm-1122_P100-1999" },
-  { 1123, "ibm-1123" },
-  { 1123, "ibm-1123_P100-1995" },
-  { 1124, "ibm-1124" },
-  { 1124, "ibm-1124_P100-1996" },
-  { 1125, "ibm-1125" },
-  { 1125, "ibm-1125_P100-1997" },
-  { 1127, "ibm-1127" },
-  { 1127, "ibm-1127_P100-2004" },
-  { 1129, "ibm-1129" },
-  { 1129, "ibm-1129_P100-1997" },
-  { 1130, "ibm-1130" },
-  { 1130, "ibm-1130_P100-1997" },
-  { 1131, "ibm-1131" },
-  { 1131, "ibm-1131_P100-1997" },
-  { 1132, "ibm-1132" },
-  { 1132, "ibm-1132_P100-1998" },
-  { 1133, "ibm-1133" },
-  { 1133, "ibm-1133_P100-1997" },
-  { 1137, "ibm-1137" },
-  { 1137, "ibm-1137_P100-1999" },
-  { 1140, "ibm-1140" },
-  { 1140, "ibm-1140_P100-1997" },
-  { 1141, "ibm-1141" },
-  { 1141, "ibm-1141_P100-1997" },
-  { 1142, "ibm-1142" },
-  { 1142, "ibm-1142_P100-1997" },
-  { 1143, "ibm-1143" },
-  { 1143, "ibm-1143_P100-1997" },
-  { 1144, "ibm-1144" },
-  { 1144, "ibm-1144_P100-1997" },
-  { 1145, "ibm-1145" },
-  { 1145, "ibm-1145_P100-1997" },
-  { 1146, "ibm-1146" },
-  { 1146, "ibm-1146_P100-1997" },
-  { 1147, "ibm-1147" },
-  { 1147, "ibm-1147_P100-1997" },
-  { 1148, "ibm-1148" },
-  { 1148, "ibm-1148_P100-1997" },
-  { 1149, "ibm-1149" },
-  { 1149, "ibm-1149_P100-1997" },
-  { 1153, "ibm-1153" },
-  { 1153, "ibm-1153_P100-1999" },
-  { 1154, "ibm-1154" },
-  { 1154, "ibm-1154_P100-1999" },
-  { 1155, "ibm-1155" },
-  { 1155, "ibm-1155_P100-1999" },
-  { 1156, "ibm-1156" },
-  { 1156, "ibm-1156_P100-1999" },
-  { 1157, "ibm-1157" },
-  { 1157, "ibm-1157_P100-1999" },
-  { 1158, "ibm-1158" },
-  { 1158, "ibm-1158_P100-1999" },
-  { 1160, "ibm-1160" },
-  { 1160, "ibm-1160_P100-1999" },
-  { 1161, "ibm-1161" },
-  { 1161, "ibm-1161_P100-1999" },
-  { 1162, "ibm-1162" },
-  { 1162, "ibm-1162_P100-1999" },
-  { 1163, "ibm-1163" },
-  { 1163, "ibm-1163_P100-1999" },
-  { 1164, "ibm-1164" },
-  { 1164, "ibm-1164_P100-1999" },
-  { 1165, "ibm-1165" },
-  { 1165, "ibm-1165_P101-2000" },
-  { 1166, "ibm-1166" },
-  { 1166, "ibm-1166_P100-2002" },
-  { 1167, "ibm-1167" },
-  { 1167, "ibm-1167_P100-2002" },
-  { 21866, "ibm-1168" },
-  { 21866, "ibm-1168_P100-2002" },
-  { 1174, "ibm-1174" },
-  { 1174, "ibm-1174_X100-2007" },
-  { 1201, "ibm-1200" },
-  { 1201, "ibm-1201" },
-  { 1200, "ibm-1202" },
-  { 1200, "ibm-1203" },
-  { 1205, "ibm-1204" },
-  { 1205, "ibm-1205" },
-  { 65001, "ibm-1208" },
-  { 65001, "ibm-1209" },
-  { 1213, "ibm-1212" },
-  { 1213, "ibm-1213" },
-  { 1215, "ibm-1214" },
-  { 1215, "ibm-1215" },
-  { 9424, "ibm-1232" },
-  { 9424, "ibm-1233" },
-  { 1235, "ibm-1234" },
-  { 1235, "ibm-1235" },
-  { 1237, "ibm-1236" },
-  { 1237, "ibm-1237" },
-  { 1250, "ibm-1250" },
-  { 1250, "ibm-1250_P100-1995" },
-  { 1251, "ibm-1251" },
-  { 1251, "ibm-1251_P100-1995" },
-  { 1252, "ibm-1252" },
-  { 1252, "ibm-1252_P100-2000" },
-  { 1253, "ibm-1253" },
-  { 1253, "ibm-1253_P100-1995" },
-  { 1254, "ibm-1254" },
-  { 1254, "ibm-1254_P100-1995" },
-  { 1255, "ibm-1255" },
-  { 1255, "ibm-1255_P100-1995" },
-  { 1256, "ibm-1256" },
-  { 1256, "ibm-1256_P110-1997" },
-  { 1257, "ibm-1257" },
-  { 1257, "ibm-1257_P100-1995" },
-  { 1258, "ibm-1258" },
-  { 1258, "ibm-1258_P100-1997" },
-  { 12712, "ibm-12712" },
-  { 12712, "ibm-12712_P100-1998" },
-  { 1276, "ibm-1276" },
-  { 1276, "ibm-1276_P100-1995" },
-  { 1277, "ibm-1277" },
-  { 1277, "ibm-1277_P100-1995" },
-  { 13125, "ibm-13125" },
-  { 13125, "ibm-13125_P100-1997" },
-  { 13140, "ibm-13140" },
-  { 13140, "ibm-13140_P101-2000" },
-  { 13218, "ibm-13218" },
-  { 13218, "ibm-13218_P100-1996" },
-  { 1201, "ibm-13488" },
-  { 1201, "ibm-13489" },
-  { 1200, "ibm-13490" },
-  { 1200, "ibm-13491" },
-  { 65001, "ibm-13496" },
-  { 65001, "ibm-13497" },
-  { 1350, "ibm-1350" },
-  { 1350, "ibm-1350_P110-1997" },
-  { 1351, "ibm-1351" },
-  { 1351, "ibm-1351_P110-1997" },
-  { 1362, "ibm-1362" },
-  { 1362, "ibm-1362_P110-1999" },
-  { 1363, "ibm-1363" },
-  { 1363, "ibm-1363_P110-1997" },
-  { 1363, "ibm-1363_P11B-1998" },
-  { 1364, "ibm-1364" },
-  { 1364, "ibm-1364_P110-2007" },
-  { 13676, "ibm-13676" },
-  { 13676, "ibm-13676_P102-2001" },
-  { 1370, "ibm-1370" },
-  { 1370, "ibm-1370_P100-1999" },
-  { 1371, "ibm-1371" },
-  { 1371, "ibm-1371_P100-1999" },
-  { 1373, "ibm-1373" },
-  { 1373, "ibm-1373_P100-2002" },
-  { 1375, "ibm-1375" },
-  { 1375, "ibm-1375_P100-2007" },
-  { 1380, "ibm-1380" },
-  { 1380, "ibm-1380_P100-1995" },
-  { 1381, "ibm-1381" },
-  { 1381, "ibm-1381_P110-1999" },
-  { 1382, "ibm-1382" },
-  { 1382, "ibm-1382_P100-1995" },
-  { 1383, "ibm-1383" },
-  { 1383, "ibm-1383_P110-1999" },
-  { 1385, "ibm-1385" },
-  { 1386, "ibm-1386" },
-  { 1386, "ibm-1386_P100-2001" },
-  { 9580, "ibm-1388" },
-  { 9580, "ibm-1388_P103-2001" },
-  { 1390, "ibm-1390" },
-  { 1390, "ibm-1390_P110-2003" },
-  { 54936, "ibm-1392" },
-  { 1399, "ibm-1399" },
-  { 1399, "ibm-1399_P110-2003" },
-  { 20780, "ibm-16684" },
-  { 20780, "ibm-16684_P110-2003" },
-  { 16804, "ibm-16804" },
-  { 16804, "ibm-16804_X110-1999" },
-  { 17221, "ibm-17221" },
-  { 17221, "ibm-17221_P100-2001" },
-  { 17248, "ibm-17248" },
-  { 17248, "ibm-17248_X110-1999" },
-  { 1201, "ibm-17584" },
-  { 1201, "ibm-17585" },
-  { 1200, "ibm-17586" },
-  { 1200, "ibm-17587" },
-  { 65001, "ibm-17592" },
-  { 65001, "ibm-17593" },
-  { 20780, "ibm-20780" },
-  { 21344, "ibm-21344" },
-  { 21344, "ibm-21344_P101-2000" },
-  { 21427, "ibm-21427" },
-  { 21427, "ibm-21427_P100-1999" },
-  { 1201, "ibm-21680" },
-  { 1201, "ibm-21681" },
-  { 1200, "ibm-21682" },
-  { 1200, "ibm-21683" },
-  { 25546, "ibm-25546" },
-  { 256, "ibm-256" },
-  { 256, "ibm-256_P100-1995" },
-  { 1201, "ibm-25776" },
-  { 1201, "ibm-25777" },
-  { 1200, "ibm-25778" },
-  { 1200, "ibm-25779" },
-  { 259, "ibm-259" },
-  { 259, "ibm-259_P100-1995" },
-  { 273, "ibm-273" },
-  { 273, "ibm-273_P100-1995" },
-  { 274, "ibm-274" },
-  { 274, "ibm-274_P100-2000" },
-  { 275, "ibm-275" },
-  { 275, "ibm-275_P100-1995" },
-  { 277, "ibm-277" },
-  { 277, "ibm-277_P100-1995" },
-  { 278, "ibm-278" },
-  { 278, "ibm-278_P100-1995" },
-  { 280, "ibm-280" },
-  { 280, "ibm-280_P100-1995" },
-  { 284, "ibm-284" },
-  { 284, "ibm-284_P100-1995" },
-  { 285, "ibm-285" },
-  { 285, "ibm-285_P100-1995" },
-  { 286, "ibm-286" },
-  { 286, "ibm-286_P100-2003" },
-  { 290, "ibm-290" },
-  { 290, "ibm-290_P100-1995" },
-  { 293, "ibm-293" },
-  { 293, "ibm-293_P100-1995" },
-  { 297, "ibm-297" },
-  { 297, "ibm-297_P100-1995" },
-  { 1201, "ibm-29872" },
-  { 1201, "ibm-29873" },
-  { 1200, "ibm-29874" },
-  { 1200, "ibm-29875" },
-  { 300, "ibm-300" },
-  { 300, "ibm-300_P120-2006" },
-  { 301, "ibm-301" },
-  { 301, "ibm-301_P110-1997" },
-  { 33058, "ibm-33058" },
-  { 33058, "ibm-33058_P100-2000" },
-  { 5050, "ibm-33722" },
-  { 5050, "ibm-33722_P120-1999" },
-  { 51932, "ibm-33722_P12A_P12A-2004_U2" },
-  { 20127, "ibm-367" },
-  { 37, "ibm-37" },
-  { 37, "ibm-37_P100-1995" },
-  { 420, "ibm-420" },
-  { 420, "ibm-420_X120-1999" },
-  { 424, "ibm-424" },
-  { 424, "ibm-424_P100-1995" },
-  { 425, "ibm-425" },
-  { 425, "ibm-425_P101-2000" },
-  { 437, "ibm-437" },
-  { 437, "ibm-437_P100-1995" },
-  { 4517, "ibm-4517" },
-  { 4517, "ibm-4517_P100-2005" },
-  { 4899, "ibm-4899" },
-  { 4899, "ibm-4899_P100-1998" },
-  { 57002, "ibm-4902" },
-  { 4909, "ibm-4909" },
-  { 4909, "ibm-4909_P100-1999" },
-  { 4930, "ibm-4930" },
-  { 4930, "ibm-4930_P110-1999" },
-  { 4933, "ibm-4933" },
-  { 4933, "ibm-4933_P100-2002" },
-  { 4948, "ibm-4948" },
-  { 4948, "ibm-4948_P100-1995" },
-  { 4951, "ibm-4951" },
-  { 4951, "ibm-4951_P100-1995" },
-  { 4952, "ibm-4952" },
-  { 4952, "ibm-4952_P100-1995" },
-  { 4960, "ibm-4960" },
-  { 4960, "ibm-4960_P100-1995" },
-  { 4971, "ibm-4971" },
-  { 4971, "ibm-4971_P100-1999" },
-  { 500, "ibm-500" },
-  { 500, "ibm-500_P100-1995" },
-  { 28598, "ibm-5012" },
-  { 28598, "ibm-5012_P100-1999" },
-  { 5026, "ibm-5026" },
-  { 5035, "ibm-5035" },
-  { 5039, "ibm-5039" },
-  { 5039, "ibm-5039_P11A-1998" },
-  { 5048, "ibm-5048" },
-  { 5048, "ibm-5048_P100-1995" },
-  { 5049, "ibm-5049" },
-  { 5049, "ibm-5049_P100-1995" },
-  { 5050, "ibm-5050" },
-  { 5054, "ibm-5054" },
-  { 5067, "ibm-5067" },
-  { 5067, "ibm-5067_P100-1995" },
-  { 5104, "ibm-5104" },
-  { 5104, "ibm-5104_X110-1999" },
-  { 5123, "ibm-5123" },
-  { 5123, "ibm-5123_P100-1999" },
-  { 65001, "ibm-5304" },
-  { 65001, "ibm-5305" },
-  { 1250, "ibm-5346" },
-  { 1250, "ibm-5346_P100-1998" },
-  { 1251, "ibm-5347" },
-  { 1251, "ibm-5347_P100-1998" },
-  { 1252, "ibm-5348" },
-  { 1252, "ibm-5348_P100-1997" },
-  { 1253, "ibm-5349" },
-  { 1253, "ibm-5349_P100-1998" },
-  { 1254, "ibm-5350" },
-  { 1254, "ibm-5350_P100-1998" },
-  { 5351, "ibm-5351" },
-  { 5351, "ibm-5351_P100-1998" },
-  { 5352, "ibm-5352" },
-  { 5352, "ibm-5352_P100-1998" },
-  { 5353, "ibm-5353" },
-  { 5353, "ibm-5353_P100-1998" },
-  { 1258, "ibm-5354" },
-  { 1258, "ibm-5354_P100-1998" },
-  { 5471, "ibm-5471" },
-  { 5471, "ibm-5471_P100-2006" },
-  { 5478, "ibm-5478" },
-  { 5478, "ibm-5478_P100-1995" },
-  { 1201, "ibm-61955" },
-  { 1201, "ibm-61956" },
-  { 65025, "ibm-65025" },
-  { 720, "ibm-720" },
-  { 720, "ibm-720_P100-1997" },
-  { 737, "ibm-737" },
-  { 737, "ibm-737_P100-1997" },
-  { 775, "ibm-775" },
-  { 775, "ibm-775_P100-1996" },
-  { 803, "ibm-803" },
-  { 803, "ibm-803_P100-1999" },
-  { 806, "ibm-806" },
-  { 806, "ibm-806_P100-1998" },
-  { 808, "ibm-808" },
-  { 808, "ibm-808_P100-1999" },
-  { 813, "ibm-813" },
-  { 813, "ibm-813_P100-1995" },
-  { 819, "ibm-819" },
-  { 833, "ibm-833" },
-  { 833, "ibm-833_P100-1995" },
-  { 834, "ibm-834" },
-  { 834, "ibm-834_P100-1995" },
-  { 835, "ibm-835" },
-  { 835, "ibm-835_P100-1995" },
-  { 836, "ibm-836" },
-  { 836, "ibm-836_P100-1995" },
-  { 837, "ibm-837" },
-  { 837, "ibm-837_P100-1995" },
-  { 9030, "ibm-838" },
-  { 9030, "ibm-838_P100-1995" },
-  { 848, "ibm-848" },
-  { 8482, "ibm-8482" },
-  { 8482, "ibm-8482_P100-1999" },
-  { 848, "ibm-848_P100-1999" },
-  { 849, "ibm-849" },
-  { 849, "ibm-849_P100-1999" },
-  { 850, "ibm-850" },
-  { 850, "ibm-850_P100-1995" },
-  { 851, "ibm-851" },
-  { 851, "ibm-851_P100-1995" },
-  { 852, "ibm-852" },
-  { 852, "ibm-852_P100-1995" },
-  { 855, "ibm-855" },
-  { 855, "ibm-855_P100-1995" },
-  { 856, "ibm-856" },
-  { 856, "ibm-856_P100-1995" },
-  { 857, "ibm-857" },
-  { 857, "ibm-857_P100-1995" },
-  { 858, "ibm-858" },
-  { 858, "ibm-858_P100-1997" },
-  { 859, "ibm-859" },
-  { 859, "ibm-859_P100-1999" },
-  { 860, "ibm-860" },
-  { 860, "ibm-860_P100-1995" },
-  { 861, "ibm-861" },
-  { 8612, "ibm-8612" },
-  { 8612, "ibm-8612_P100-1995" },
-  { 861, "ibm-861_P100-1995" },
-  { 862, "ibm-862" },
-  { 862, "ibm-862_P100-1995" },
-  { 863, "ibm-863" },
-  { 863, "ibm-863_P100-1995" },
-  { 864, "ibm-864" },
-  { 864, "ibm-864_X110-1999" },
-  { 865, "ibm-865" },
-  { 865, "ibm-865_P100-1995" },
-  { 866, "ibm-866" },
-  { 866, "ibm-866_P100-1995" },
-  { 867, "ibm-867" },
-  { 867, "ibm-867_P100-1998" },
-  { 868, "ibm-868" },
-  { 868, "ibm-868_P100-1995" },
-  { 869, "ibm-869" },
-  { 869, "ibm-869_P100-1995" },
-  { 870, "ibm-870" },
-  { 870, "ibm-870_P100-1995" },
-  { 871, "ibm-871" },
-  { 871, "ibm-871_P100-1995" },
-  { 872, "ibm-872" },
-  { 872, "ibm-872_P100-1999" },
-  { 9066, "ibm-874" },
-  { 9066, "ibm-874_P100-1995" },
-  { 875, "ibm-875" },
-  { 875, "ibm-875_P100-1995" },
-  { 20866, "ibm-878" },
-  { 20866, "ibm-878_P100-1996" },
-  { 20880, "ibm-880" },
-  { 20880, "ibm-880_P100-1995" },
-  { 896, "ibm-896" },
-  { 896, "ibm-896_P100-1995" },
-  { 897, "ibm-897" },
-  { 897, "ibm-897_P100-1995" },
-  { 28597, "ibm-9005" },
-  { 28597, "ibm-9005_X110-2007" },
-  { 901, "ibm-901" },
-  { 901, "ibm-901_P100-1999" },
-  { 902, "ibm-902" },
-  { 9027, "ibm-9027" },
-  { 9027, "ibm-9027_P100-1999" },
-  { 902, "ibm-902_P100-1999" },
-  { 9030, "ibm-9030" },
-  { 9048, "ibm-9048" },
-  { 9048, "ibm-9048_P100-1998" },
-  { 20905, "ibm-905" },
-  { 9056, "ibm-9056" },
-  { 9056, "ibm-9056_P100-1995" },
-  { 20905, "ibm-905_P100-1995" },
-  { 9061, "ibm-9061" },
-  { 9061, "ibm-9061_P100-1999" },
-  { 9066, "ibm-9066" },
-  { 9067, "ibm-9067" },
-  { 9067, "ibm-9067_X100-2005" },
-  { 28592, "ibm-912" },
-  { 28592, "ibm-912_P100-1995" },
-  { 28593, "ibm-913" },
-  { 28593, "ibm-913_P100-2000" },
-  { 28594, "ibm-914" },
-  { 9145, "ibm-9145" },
-  { 9145, "ibm-9145_P110-1997" },
-  { 28594, "ibm-914_P100-1995" },
-  { 28595, "ibm-915" },
-  { 28595, "ibm-915_P100-1995" },
-  { 916, "ibm-916" },
-  { 916, "ibm-916_P100-1995" },
-  { 918, "ibm-918" },
-  { 918, "ibm-918_P100-1995" },
-  { 28599, "ibm-920" },
-  { 28599, "ibm-920_P100-1995" },
-  { 28603, "ibm-921" },
-  { 28603, "ibm-921_P100-1995" },
-  { 922, "ibm-922" },
-  { 922, "ibm-922_P100-1999" },
-  { 28605, "ibm-923" },
-  { 9238, "ibm-9238" },
-  { 9238, "ibm-9238_X110-1999" },
-  { 28605, "ibm-923_P100-1998" },
-  { 924, "ibm-924" },
-  { 924, "ibm-924_P100-1998" },
-  { 926, "ibm-926" },
-  { 926, "ibm-926_P100-2000" },
-  { 927, "ibm-927" },
-  { 927, "ibm-927_P100-1995" },
-  { 928, "ibm-928" },
-  { 928, "ibm-928_P100-1995" },
-  { 5026, "ibm-930" },
-  { 5026, "ibm-930_P120-1999" },
-  { 5035, "ibm-931" },
-  { 932, "ibm-932" },
-  { 933, "ibm-933" },
-  { 933, "ibm-933_P110-1995" },
-  { 935, "ibm-935" },
-  { 935, "ibm-935_P110-1999" },
-  { 937, "ibm-937" },
-  { 937, "ibm-937_P110-1999" },
-  { 5035, "ibm-939" },
-  { 5035, "ibm-939_P120-1999" },
-  { 9400, "ibm-9400" },
-  { 941, "ibm-941" },
-  { 941, "ibm-941_P13A-2001" },
-  { 932, "ibm-942" },
-  { 9424, "ibm-9424" },
-  { 932, "ibm-942_P12A-1999" },
-  { 943, "ibm-943" },
-  { 943, "ibm-943_P130-1999" },
-  { 932, "ibm-943_P15A-2003" },
-  { 944, "ibm-944" },
-  { 1255, "ibm-9447" },
-  { 1255, "ibm-9447_P100-2002" },
-  { 1256, "ibm-9448" },
-  { 1256, "ibm-9448_X100-2005" },
-  { 1257, "ibm-9449" },
-  { 1257, "ibm-9449_P100-2002" },
-  { 944, "ibm-944_P100-1995" },
-  { 946, "ibm-946" },
-  { 946, "ibm-946_P100-1995" },
-  { 947, "ibm-947" },
-  { 947, "ibm-947_P100-1995" },
-  { 948, "ibm-948" },
-  { 948, "ibm-948_P110-1999" },
-  { 949, "ibm-949" },
-  { 949, "ibm-949_P110-1999" },
-  { 950, "ibm-950" },
-  { 950, "ibm-950_P110-1999" },
-  { 951, "ibm-951" },
-  { 951, "ibm-951_P100-1995" },
-  { 952, "ibm-952" },
-  { 952, "ibm-952_P110-1997" },
-  { 953, "ibm-953" },
-  { 953, "ibm-953_P100-2000" },
-  { 954, "ibm-954" },
-  { 954, "ibm-954_P101-2007" },
-  { 955, "ibm-955" },
-  { 955, "ibm-955_P110-1997" },
-  { 1385, "ibm-9577" },
-  { 1385, "ibm-9577_P100-2001" },
-  { 9580, "ibm-9580" },
-  { 964, "ibm-964" },
-  { 964, "ibm-964_P110-1999" },
-  { 51949, "ibm-970" },
-  { 51949, "ibm-970_P110_P110-2006_U2" },
-  { 971, "ibm-971" },
-  { 51949, "ibm-eucKR" },
-  { 1018, "iso-ir-10" },
-  { 819, "iso-ir-100" },
-  { 28592, "iso-ir-101" },
-  { 28593, "iso-ir-109" },
-  { 28594, "iso-ir-110" },
-  { 1020, "iso-ir-121" },
-  { 28597, "iso-ir-126" },
-  { 28596, "iso-ir-127" },
-  { 28598, "iso-ir-138" },
-  { 28595, "iso-ir-144" },
-  { 28599, "iso-ir-148" },
-  { 949, "iso-ir-149" },
-  { 1012, "iso-ir-15" },
-  { 1023, "iso-ir-17" },
-  { 1011, "iso-ir-21" },
-  { 1104, "iso-ir-25" },
-  { 1013, "iso-ir-4" },
-  { 5478, "iso-ir-58" },
-  { 20127, "iso-ir-6" },
-  { 1016, "iso-ir-60" },
-  { 1010, "iso-ir-69" },
-  { 1015, "iso-ir-84" },
-  { 1014, "iso-ir-85" },
-  { 28605, "iso8859_15_fdis" },
-  { 20127, "iso_646.irv:1983" },
-  { 20866, "koi8" },
-  { 949, "korean" },
-  { 819, "l1" },
-  { 28592, "l2" },
-  { 28593, "l3" },
-  { 28594, "l4" },
-  { 28599, "l5" },
-  { 28605, "l9" },
-  { 28605, "latin0" },
-  { 819, "latin1" },
-  { 28592, "latin2" },
-  { 28593, "latin3" },
-  { 28594, "latin4" },
-  { 28599, "latin5" },
-  { 10000, "mac" },
-  { 10000, "macintosh" },
-  { 10000, "macos-0_2-10.2" },
-  { 10029, "macos-29-10.2" },
-  { 10081, "macos-35-10.2" },
-  { 10006, "macos-6_2-10.4" },
-  { 10007, "macos-7_3-10.2" },
-  { 10000, "macroman" },
-  { 949, "ms949" },
-  { 1016, "no" },
-  { 1051, "r8" },
-  { 1051, "roman8" },
-  { 1018, "se" },
-  { 9066, "tis620.2533" },
-  { 1013, "uk" },
-  { 20127, "us" },
-  { 10000, "windows-10000" },
-  { 10006, "windows-10006" },
-  { 10007, "windows-10007" },
-  { 10029, "windows-10029" },
-  { 10081, "windows-10081" },
-  { 1200, "windows-1200" },
-  { 1201, "windows-1201" },
-  { 1250, "windows-1250" },
-  { 1251, "windows-1251" },
-  { 1252, "windows-1252" },
-  { 1253, "windows-1253" },
-  { 1254, "windows-1254" },
-  { 1255, "windows-1255" },
-  { 1256, "windows-1256" },
-  { 1257, "windows-1257" },
-  { 1258, "windows-1258" },
-  { 20127, "windows-20127" },
-  { 20866, "windows-20866" },
-  { 20880, "windows-20880" },
-  { 20905, "windows-20905" },
-  { 21866, "windows-21866" },
-  { 28592, "windows-28592" },
-  { 28593, "windows-28593" },
-  { 28594, "windows-28594" },
-  { 28595, "windows-28595" },
-  { 28596, "windows-28596" },
-  { 28597, "windows-28597" },
-  { 28598, "windows-28598" },
-  { 28599, "windows-28599" },
-  { 28603, "windows-28603" },
-  { 28605, "windows-28605" },
-  { 932, "windows-31j" },
-  { 437, "windows-437" },
-  { 51932, "windows-51932" },
-  { 51949, "windows-51949" },
-  { 54936, "windows-54936" },
-  { 57002, "windows-57002" },
-  { 57006, "windows-57003" },
-  { 57004, "windows-57004" },
-  { 57005, "windows-57005" },
-  { 57006, "windows-57006" },
-  { 57007, "windows-57007" },
-  { 57008, "windows-57008" },
-  { 57009, "windows-57009" },
-  { 57010, "windows-57010" },
-  { 57011, "windows-57011" },
-  { 65000, "windows-65000" },
-  { 65001, "windows-65001" },
-  { 720, "windows-720" },
-  { 737, "windows-737" },
-  { 775, "windows-775" },
-  { 850, "windows-850" },
-  { 852, "windows-852" },
-  { 855, "windows-855" },
-  { 857, "windows-857" },
-  { 858, "windows-858" },
-  { 861, "windows-861" },
-  { 862, "windows-862" },
-  { 866, "windows-866" },
-  { 869, "windows-869" },
-  { 874, "windows-874" },
-  { 874, "windows-874-2000" },
-  { 932, "windows-932" },
-  { 936, "windows-936" },
-  { 936, "windows-936-2000" },
-  { 949, "windows-949" },
-  { 949, "windows-949-2000" },
-  { 950, "windows-950" },
-  { 950, "windows-950-2000" },
-  { 1006, "x-IBM1006" },
-  { 1025, "x-IBM1025" },
-  { 1027, "x-IBM1027" },
-  { 1041, "x-IBM1041" },
-  { 1043, "x-IBM1043" },
-  { 1046, "x-IBM1046" },
-  { 1046, "x-IBM1046S" },
-  { 1088, "x-IBM1088" },
-  { 1097, "x-IBM1097" },
-  { 1098, "x-IBM1098" },
-  { 1112, "x-IBM1112" },
-  { 1114, "x-IBM1114" },
-  { 1115, "x-IBM1115" },
-  { 1122, "x-IBM1122" },
-  { 1123, "x-IBM1123" },
-  { 1124, "x-IBM1124" },
-  { 1153, "x-IBM1153" },
-  { 1351, "x-IBM1351" },
-  { 1362, "x-IBM1362" },
-  { 1363, "x-IBM1363" },
-  { 1363, "x-IBM1363C" },
-  { 1364, "x-IBM1364" },
-  { 1370, "x-IBM1370" },
-  { 1371, "x-IBM1371" },
-  { 1380, "x-IBM1380" },
-  { 1381, "x-IBM1381" },
-  { 1382, "x-IBM1382" },
-  { 1385, "x-IBM1385" },
-  { 9580, "x-IBM1388" },
-  { 1390, "x-IBM1390" },
-  { 1399, "x-IBM1399" },
-  { 300, "x-IBM300" },
-  { 301, "x-IBM301" },
-  { 5050, "x-IBM33722" },
-  { 5050, "x-IBM33722A" },
-  { 5050, "x-IBM33722C" },
-  { 720, "x-IBM720" },
-  { 737, "x-IBM737" },
-  { 808, "x-IBM808" },
-  { 833, "x-IBM833" },
-  { 834, "x-IBM834" },
-  { 835, "x-IBM835" },
-  { 836, "x-IBM836" },
-  { 837, "x-IBM837" },
-  { 856, "x-IBM856" },
-  { 859, "x-IBM859" },
-  { 867, "x-IBM867" },
-  { 9066, "x-IBM874" },
-  { 875, "x-IBM875" },
-  { 897, "x-IBM897" },
-  { 28603, "x-IBM921" },
-  { 922, "x-IBM922" },
-  { 927, "x-IBM927" },
-  { 5026, "x-IBM930" },
-  { 5026, "x-IBM930A" },
-  { 933, "x-IBM933" },
-  { 935, "x-IBM935" },
-  { 937, "x-IBM937" },
-  { 5035, "x-IBM939" },
-  { 5035, "x-IBM939A" },
-  { 932, "x-IBM942" },
-  { 932, "x-IBM942C" },
-  { 943, "x-IBM943" },
-  { 947, "x-IBM947" },
-  { 948, "x-IBM948" },
-  { 949, "x-IBM949" },
-  { 950, "x-IBM950" },
-  { 951, "x-IBM951" },
-  { 954, "x-IBM954" },
-  { 954, "x-IBM954C" },
-  { 964, "x-IBM964" },
-  { 51949, "x-IBM970" },
-  { 971, "x-IBM971" },
-  { 57002, "x-ISCII91" },
-  { 28596, "x-ISO-8859-6S" },
-  { 932, "x-JISAutoDetect" },
-  { 1167, "x-KOI8_RU" },
-  { 949, "x-KSC5601" },
-  { 932, "x-MS932_0213" },
-  { 5471, "x-MS950-HKSCS" },
-  { 10029, "x-MacCentralEurope" },
-  { 10007, "x-MacCyrillic" },
-  { 10006, "x-MacGreek" },
-  { 10081, "x-MacTurkish" },
-  { 10007, "x-MacUkraine" },
-  { 1350, "x-eucJP-Open" },
-  { 57006, "x-iscii-as" },
-  { 57006, "x-iscii-be" },
-  { 57002, "x-iscii-de" },
-  { 57010, "x-iscii-gu" },
-  { 57008, "x-iscii-ka" },
-  { 57009, "x-iscii-ma" },
-  { 57007, "x-iscii-or" },
-  { 57011, "x-iscii-pa" },
-  { 57004, "x-iscii-ta" },
-  { 57005, "x-iscii-te" },
-  { 10029, "x-mac-ce" },
-  { 10029, "x-mac-centraleurroman" },
-  { 10007, "x-mac-cyrillic" },
-  { 10006, "x-mac-greek" },
-  { 10081, "x-mac-turkish" },
-  { 10000, "x-macroman" },
-  { 932, "x-ms-cp932" },
-  { 932, "x-sjis" },
-  { 1201, "x-utf-16be" },
-  { 1200, "x-utf-16le" },
-  { 1256, "x-windows-1256S" },
-  { 5054, "x-windows-50221" },
-  { 874, "x-windows-874" },
-  { 950, "x-windows-950" },
-  { 0, NULL }
-};
index 4364b315188dbb0cf1cc5e29a6285bbe82a8f95d..95860d0e5bf3729fa4f55bd8c70390aa14e6ef09 100755 (executable)
@@ -1,5 +1,5 @@
 #! /usr/bin/perl
-#    Copyright (C) 2020  Free Software Foundation
+#    Copyright (C) 2020, 2021Free Software Foundation
 
 #    This program is free software: you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
 #    You should have received a copy of the GNU General Public License
 #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-
 use strict;
 use warnings;
 
-if (-t 0 || @ARGV) {
-    print <<EOF;
+if (-t 1 || @ARGV != 1 || $ARGV[0] eq '--help') {
+    print STDERR <<EOF;
 $0: generate code page tables from ICU encoding list
-usage: $0 < convrtrs.txt > sys-file-encoding.c
+usage: $0 CONVRTRS-TXT > sys-file-encoding.c
 
-To regenerate the encoding data, get the latest ICU encoding data from:
-http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt
-then convert it with this script using the command above.
+To update the encoding data, get the latest ICU encoding data from:
+https://raw.githubusercontent.com/unicode-org/icu/main/icu4c/source/data/mappings/convrtrs.txt
 EOF
     exit (@ARGV && $ARGV[0] eq '--help' ? 0 : 1);
 }
 
-open (CONVERTERS, '<', 'convrtrs.txt')
-  or die "convrtrs.txt: open failed ($!)\n";
+open (CONVERTERS, '<', $ARGV[0])
+  or die "$ARGV[0]: open failed ($!)\n";
 
 our $WINDOWS = 3;              # Windows code pages.
 our $IBM = 2;                  # IBM code pages.