/*
 * Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code 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
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package sun.io;

import java.util.Collections;
import java.util.Iterator;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.security.AccessController;
import java.security.PrivilegedAction;
import sun.security.action.GetPropertyAction;

/*
 * This class is public in sun.io, so other sun.* packages (such as
 * HotJava) can use it, without exposing it to java.*.
 * Translates IANA encoding name to the string which is the part of
 * converter class.
 */

/**
 * @deprecated Replaced by {@link java.nio.charset}.  THIS API WILL BE
 * REMOVED IN J2SE 1.6.
 */
@Deprecated
public class CharacterEncoding {

    private static boolean sjisIsMS932;

    private static Map<String,String> aliasTable;
    private static volatile boolean installedAll;

    static {
        aliasTable = new HashMap<>(460, 1.0f);                    /* MDA */

        aliasTable.put("us-ascii",              "ASCII");
        aliasTable.put("ascii",                 "ASCII");
        aliasTable.put("646",                   "ASCII");       // Solaris POSIX locale
        aliasTable.put("iso_646.irv:1983",      "ASCII");       // Linux POSIX locale
        aliasTable.put("ansi_x3.4-1968",        "ASCII");       // Caldera linux
        aliasTable.put("iso646-us",             "ASCII");
        aliasTable.put("default",               "ASCII");       // compatibility with obsolete "Default" converters
        aliasTable.put("ascii7",                "ASCII");       // compatibility with obsolete "Default" converters

        // Core encodings
        aliasTable.put("8859_1",                "ISO8859_1");
        aliasTable.put("iso8859_1",             "ISO8859_1");
        aliasTable.put("utf-8",                 "UTF8");
        aliasTable.put("utf8",                  "UTF8");
        aliasTable.put("utf-16le",              "UnicodeLittleUnmarked");

        // Standard encodings used on Solaris and Linux
        aliasTable.put("iso8859-1",             "ISO8859_1");
        aliasTable.put("iso8859-2",             "ISO8859_2");
        aliasTable.put("iso8859-4",             "ISO8859_4");
        aliasTable.put("iso8859-5",             "ISO8859_5");
        aliasTable.put("iso8859-6",             "ISO8859_6");
        aliasTable.put("iso8859-8",             "ISO8859_8");
        aliasTable.put("iso8859-9",             "ISO8859_9");
        aliasTable.put("iso8859-13",            "ISO8859_13");
        aliasTable.put("iso8859-15",            "ISO8859_15");
        aliasTable.put("5601",                  "EUC_KR");
        aliasTable.put("ansi-1251",             "Cp1251");
        aliasTable.put("big5",                  "Big5");
        aliasTable.put("big5hk",                "Big5_HKSCS");
        aliasTable.put("eucjp",                 "EUC_JP");
        aliasTable.put("cns11643",              "EUC_TW");
        aliasTable.put("gb2312",                "EUC_CN");
        aliasTable.put("gb18030",               "GB18030");
        aliasTable.put("gbk",                   "GBK");
        aliasTable.put("koi8-r",                "KOI8_R");
        aliasTable.put("tis620.2533",           "TIS620");

        // Windows encodings
        aliasTable.put("cp1250",                "Cp1250");
        aliasTable.put("cp1251",                "Cp1251");
        aliasTable.put("cp1252",                "Cp1252");
        aliasTable.put("cp1253",                "Cp1253");
        aliasTable.put("cp1254",                "Cp1254");
        aliasTable.put("cp1255",                "Cp1255");
        aliasTable.put("cp1256",                "Cp1256");
        aliasTable.put("cp1257",                "Cp1257");
        aliasTable.put("cp1258",                "Cp1258");
        aliasTable.put("ms874",                 "MS874");
        aliasTable.put("ms932",                 "MS932");
        aliasTable.put("ms949",                 "MS949");
        aliasTable.put("ms950",                 "MS950");
        aliasTable.put("ms1361",                "MS1361");
    }

    public static String aliasName(String name){

        if (name.startsWith("\1")) {
            // Emergency access to old converters
            name = name.substring(1);
        }
        // need to use Locale.US so we can load ISO converters in tr_TR locale
        String lower = name.toLowerCase(Locale.US);
        String val = aliasTable.get(lower);

        if (val == null && !installedAll) {
            installAll();
            val = aliasTable.get(lower);
        }
        return val;
    }

    private static synchronized void installAll() {
        if (!installedAll) {
            GetPropertyAction a = new GetPropertyAction("sun.nio.cs.map");
            String map = AccessController.doPrivileged(a);
            if (map != null) {
                sjisIsMS932 = map.equalsIgnoreCase("Windows-31J/Shift_JIS");
            } else {
                sjisIsMS932 = false;
            }

            // MIBenum: 4
            aliasTable.put("8859_1",                "ISO8859_1");
            aliasTable.put("iso_8859-1:1987",       "ISO8859_1");
            aliasTable.put("iso-ir-100",            "ISO8859_1");
            aliasTable.put("iso_8859-1",            "ISO8859_1");
            aliasTable.put("iso-8859-1",            "ISO8859_1");
            aliasTable.put("iso8859-1",             "ISO8859_1");
            aliasTable.put("latin1",                "ISO8859_1");
            aliasTable.put("l1",                    "ISO8859_1");
            aliasTable.put("ibm819",                "ISO8859_1");
            aliasTable.put("ibm-819",               "ISO8859_1");
            aliasTable.put("cp819",                 "ISO8859_1");
            aliasTable.put("819",                   "ISO8859_1");
            aliasTable.put("csisolatin1",           "ISO8859_1");

            // MIBenum: 5
            aliasTable.put("8859_2",                "ISO8859_2");
            aliasTable.put("iso_8859-2:1987",       "ISO8859_2");
            aliasTable.put("iso-ir-101",            "ISO8859_2");
            aliasTable.put("iso_8859-2",            "ISO8859_2");
            aliasTable.put("iso-8859-2",            "ISO8859_2");
            aliasTable.put("iso8859-2",             "ISO8859_2");
            aliasTable.put("latin2",                "ISO8859_2");
            aliasTable.put("l2",                    "ISO8859_2");
            aliasTable.put("ibm912",                "ISO8859_2");
            aliasTable.put("ibm-912",               "ISO8859_2");
            aliasTable.put("cp912",                 "ISO8859_2");
            aliasTable.put("912",                   "ISO8859_2");
            aliasTable.put("csisolatin2",           "ISO8859_2");

            // MIBenum: 6
            aliasTable.put("8859_3",                "ISO8859_3");
            aliasTable.put("iso_8859-3:1988",       "ISO8859_3");
            aliasTable.put("iso-ir-109",            "ISO8859_3");
            aliasTable.put("iso_8859-3",            "ISO8859_3");
            aliasTable.put("iso-8859-3",            "ISO8859_3");
            aliasTable.put("iso8859-3",             "ISO8859_3");
            aliasTable.put("latin3",                "ISO8859_3");
            aliasTable.put("l3",                    "ISO8859_3");
            aliasTable.put("ibm913",                "ISO8859_3");
            aliasTable.put("ibm-913",               "ISO8859_3");
            aliasTable.put("cp913",                 "ISO8859_3");
            aliasTable.put("913",                   "ISO8859_3");
            aliasTable.put("csisolatin3",           "ISO8859_3");

            // MIBenum: 7
            aliasTable.put("8859_4",                "ISO8859_4");
            aliasTable.put("iso_8859-4:1988",       "ISO8859_4");
            aliasTable.put("iso-ir-110",            "ISO8859_4");
            aliasTable.put("iso_8859-4",            "ISO8859_4");
            aliasTable.put("iso-8859-4",            "ISO8859_4");
            aliasTable.put("iso8859-4",             "ISO8859_4");
            aliasTable.put("latin4",                "ISO8859_4");
            aliasTable.put("l4",                    "ISO8859_4");
            aliasTable.put("ibm914",                "ISO8859_4");
            aliasTable.put("ibm-914",               "ISO8859_4");
            aliasTable.put("cp914",                 "ISO8859_4");
            aliasTable.put("914",                   "ISO8859_4");
            aliasTable.put("csisolatin4",           "ISO8859_4");

            // MIBenum: 8
            aliasTable.put("8859_5",                "ISO8859_5");
            aliasTable.put("iso_8859-5:1988",       "ISO8859_5");
            aliasTable.put("iso-ir-144",            "ISO8859_5");
            aliasTable.put("iso_8859-5",            "ISO8859_5");
            aliasTable.put("iso-8859-5",            "ISO8859_5");
            aliasTable.put("iso8859-5",             "ISO8859_5");
            aliasTable.put("cyrillic",              "ISO8859_5");
            aliasTable.put("csisolatincyrillic",    "ISO8859_5");
            aliasTable.put("ibm915",                "ISO8859_5");
            aliasTable.put("ibm-915",               "ISO8859_5");
            aliasTable.put("cp915",                 "ISO8859_5");
            aliasTable.put("915",                   "ISO8859_5");

            // MIBenum: 9
            aliasTable.put("8859_6",                "ISO8859_6");
            aliasTable.put("iso_8859-6:1987",       "ISO8859_6");
            aliasTable.put("iso-ir-127",            "ISO8859_6");
            aliasTable.put("iso_8859-6",            "ISO8859_6");
            aliasTable.put("iso-8859-6",            "ISO8859_6");
            aliasTable.put("iso8859-6",             "ISO8859_6");
            aliasTable.put("ecma-114",              "ISO8859_6");
            aliasTable.put("asmo-708",              "ISO8859_6");
            aliasTable.put("arabic",                "ISO8859_6");
            aliasTable.put("csisolatinarabic",      "ISO8859_6");
            aliasTable.put("ibm1089",               "ISO8859_6");
            aliasTable.put("ibm-1089",              "ISO8859_6");
            aliasTable.put("cp1089",                "ISO8859_6");
            aliasTable.put("1089",                  "ISO8859_6");

            // MIBenum: 10
            aliasTable.put("8859_7",                "ISO8859_7");
            aliasTable.put("iso_8859-7:1987",       "ISO8859_7");
            aliasTable.put("iso-ir-126",            "ISO8859_7");
            aliasTable.put("iso_8859-7",            "ISO8859_7");
            aliasTable.put("iso-8859-7",            "ISO8859_7");
            aliasTable.put("iso8859-7",             "ISO8859_7");
            aliasTable.put("elot_928",              "ISO8859_7");
            aliasTable.put("ecma-118",              "ISO8859_7");
            aliasTable.put("greek",                 "ISO8859_7");
            aliasTable.put("greek8",                "ISO8859_7");
            aliasTable.put("csisolatingreek",       "ISO8859_7");
            aliasTable.put("ibm813",                "ISO8859_7");
            aliasTable.put("ibm-813",               "ISO8859_7");
            aliasTable.put("cp813",                 "ISO8859_7");
            aliasTable.put("813",                   "ISO8859_7");
            aliasTable.put("sun_eu_greek",          "ISO8859_7");

            // MIBenum: 11
            aliasTable.put("8859_8",                "ISO8859_8");
            aliasTable.put("iso_8859-8:1988",       "ISO8859_8");
            aliasTable.put("iso-ir-138",            "ISO8859_8");
            aliasTable.put("iso_8859-8",            "ISO8859_8");
            aliasTable.put("iso-8859-8",            "ISO8859_8");
            aliasTable.put("iso8859-8",             "ISO8859_8");
            aliasTable.put("hebrew",                "ISO8859_8");
            aliasTable.put("csisolatinhebrew",      "ISO8859_8");
            aliasTable.put("ibm916",                "ISO8859_8");
            aliasTable.put("ibm-916",               "ISO8859_8");
            aliasTable.put("cp916",                 "ISO8859_8");
            aliasTable.put("916",                   "ISO8859_8");

            // MIBenum: 12
            aliasTable.put("8859_9",                "ISO8859_9");
            aliasTable.put("iso-ir-148",            "ISO8859_9");
            aliasTable.put("iso_8859-9",            "ISO8859_9");
            aliasTable.put("iso-8859-9",            "ISO8859_9");
            aliasTable.put("iso8859-9",             "ISO8859_9");
            aliasTable.put("latin5",                "ISO8859_9");
            aliasTable.put("l5",                    "ISO8859_9");
            aliasTable.put("ibm920",                "ISO8859_9");
            aliasTable.put("ibm-920",               "ISO8859_9");
            aliasTable.put("cp920",                 "ISO8859_9");
            aliasTable.put("920",                   "ISO8859_9");
            aliasTable.put("csisolatin5",           "ISO8859_9");

            // MIBenum: ???
            aliasTable.put("8859_13",               "ISO8859_13");
            aliasTable.put("iso_8859-13",           "ISO8859_13");
            aliasTable.put("iso-8859-13",           "ISO8859_13");
            aliasTable.put("iso8859-13",            "ISO8859_13");


            // MIBenum: ????
            aliasTable.put("8859_15",               "ISO8859_15");
            aliasTable.put("iso-8859-15",           "ISO8859_15");
            aliasTable.put("iso_8859-15",           "ISO8859_15");
            aliasTable.put("iso8859-15",            "ISO8859_15");
            aliasTable.put("ibm923",                "ISO8859_15");
            aliasTable.put("ibm-923",               "ISO8859_15");
            aliasTable.put("cp923",                 "ISO8859_15");
            aliasTable.put("923",                   "ISO8859_15");
            aliasTable.put("latin0",                "ISO8859_15");
            aliasTable.put("latin9",                "ISO8859_15");
            aliasTable.put("csisolatin0",           "ISO8859_15");
            aliasTable.put("csisolatin9",           "ISO8859_15");

            //For compatibility purpose
            aliasTable.put("iso8859_15_fdis",       "ISO8859_15");

            // MIBenum: 106
            aliasTable.put("utf-8",                 "UTF8");

            // Alias recommended in RFC 1641
            aliasTable.put("unicode-1-1-utf-8",     "UTF8");

            // MIBenum: 1010
            aliasTable.put("unicode-1-1",           "UnicodeBigUnmarked");

            // MIBenum: 1000
            aliasTable.put("iso-10646-ucs-2",       "UnicodeBigUnmarked");

            // Per Unicode standard
            aliasTable.put("utf-16be",              "UnicodeBigUnmarked");
            aliasTable.put("utf-16le",              "UnicodeLittleUnmarked");
            aliasTable.put("utf-16",                "UTF16");

            // Used by drag-and-drop subsystem
            aliasTable.put("x-utf-16be",            "UnicodeBigUnmarked");
            aliasTable.put("x-utf-16le",            "UnicodeLittleUnmarked");

            aliasTable.put("unicode",               "Unicode");

            // MIBenum: ????
            aliasTable.put("ibm037",                "Cp037");
            aliasTable.put("ibm-037",               "Cp037");
            aliasTable.put("cp037",                 "Cp037");
            aliasTable.put("037",                   "Cp037");

            // MIBenum: ????
            aliasTable.put("ibm273",                "Cp273");
            aliasTable.put("ibm-273",               "Cp273");
            aliasTable.put("cp273",                 "Cp273");
            aliasTable.put("273",                   "Cp273");

            // MIBenum: ????
            aliasTable.put("ibm277",                "Cp277");
            aliasTable.put("ibm-277",               "Cp277");
            aliasTable.put("cp277",                 "Cp277");
            aliasTable.put("277",                   "Cp277");

            // MIBenum: ????
            aliasTable.put("ibm278",                "Cp278");
            aliasTable.put("ibm-278",               "Cp278");
            aliasTable.put("cp278",                 "Cp278");
            aliasTable.put("278",                   "Cp278");

            // MIBenum: ????
            aliasTable.put("ibm280",                "Cp280");
            aliasTable.put("ibm-280",               "Cp280");
            aliasTable.put("cp280",                 "Cp280");
            aliasTable.put("280",                   "Cp280");

            // MIBenum: ????
            aliasTable.put("ibm284",                "Cp284");
            aliasTable.put("ibm-284",               "Cp284");
            aliasTable.put("cp284",                 "Cp284");
            aliasTable.put("284",                   "Cp284");

            // MIBenum: ????
            aliasTable.put("ibm285",                "Cp285");
            aliasTable.put("ibm-285",               "Cp285");
            aliasTable.put("cp285",                 "Cp285");
            aliasTable.put("285",                   "Cp285");

            // MIBenum: ????
            aliasTable.put("ibm297",                "Cp297");
            aliasTable.put("ibm-297",               "Cp297");
            aliasTable.put("cp297",                 "Cp297");
            aliasTable.put("297",                   "Cp297");

            // MIBenum: ????
            aliasTable.put("ibm420",                "Cp420");
            aliasTable.put("ibm-420",               "Cp420");
            aliasTable.put("cp420",                 "Cp420");
            aliasTable.put("420",                   "Cp420");

            // MIBenum: ????
            aliasTable.put("ibm424",                "Cp424");
            aliasTable.put("ibm-424",               "Cp424");
            aliasTable.put("cp424",                 "Cp424");
            aliasTable.put("424",                   "Cp424");

            // MIBenum: 2011
            aliasTable.put("ibm437",                "Cp437");
            aliasTable.put("ibm-437",               "Cp437");
            aliasTable.put("cp437",                 "Cp437");
            aliasTable.put("437",                   "Cp437");
            aliasTable.put("cspc8codepage437",      "Cp437");

            // MIBenum: ????
            aliasTable.put("ibm500",                "Cp500");
            aliasTable.put("ibm-500",               "Cp500");
            aliasTable.put("cp500",                 "Cp500");
            aliasTable.put("500",                   "Cp500");

            // MIBenum: ????
            aliasTable.put("ibm737",                "Cp737");
            aliasTable.put("ibm-737",               "Cp737");
            aliasTable.put("cp737",                 "Cp737");
            aliasTable.put("737",                   "Cp737");

            // MIBenum: ????
            aliasTable.put("ibm775",                "Cp775");
            aliasTable.put("ibm-775",               "Cp775");
            aliasTable.put("cp775",                 "Cp775");
            aliasTable.put("775",                   "Cp775");

            aliasTable.put("ibm834",                "Cp834");
            aliasTable.put("ibm-834",               "Cp834");
            aliasTable.put("cp834",                 "Cp834");
            aliasTable.put("834",                   "Cp834");

            // MIBenum: ????
            aliasTable.put("ibm838",                "Cp838");         /* MDA */
            aliasTable.put("ibm-838",               "Cp838");         /* MDA */
            aliasTable.put("cp838",                 "Cp838");         /* MDA */
            aliasTable.put("838",                   "Cp838");         /* MDA */

            // "Cp850"
            // MIBenum: 2009
            aliasTable.put("ibm850",                "Cp850");
            aliasTable.put("ibm-850",               "Cp850");
            aliasTable.put("cp850",                 "Cp850");
            aliasTable.put("850",                   "Cp850");
            aliasTable.put("cspc850multilingual",   "Cp850");

            // "Cp852"
            // MIBenum: 2010
            aliasTable.put("ibm852",                "Cp852");
            aliasTable.put("ibm-852",               "Cp852");
            aliasTable.put("cp852",                 "Cp852");
            aliasTable.put("852",                   "Cp852");
            aliasTable.put("cspcp852",              "Cp852");

            // "Cp855"
            // MIBenum: 2046
            aliasTable.put("ibm855",                "Cp855");
            aliasTable.put("ibm-855",               "Cp855");
            aliasTable.put("cp855",                 "Cp855");
            aliasTable.put("855",                   "Cp855");
            aliasTable.put("cspcp855",              "Cp855");

            // "Cp855"
            // MIBenum: ???
            aliasTable.put("ibm856",                "Cp856");
            aliasTable.put("ibm-856",               "Cp856");
            aliasTable.put("cp856",                 "Cp856");
            aliasTable.put("856",                   "Cp856");

            // "Cp857"
            // MIBenum: 2047
            aliasTable.put("ibm857",                "Cp857");
            aliasTable.put("ibm-857",               "Cp857");
            aliasTable.put("cp857",                 "Cp857");
            aliasTable.put("857",                   "Cp857");
            aliasTable.put("csibm857",              "Cp857");

            // "Cp860"
            // MIBenum: 2048
            aliasTable.put("ibm860",                "Cp860");
            aliasTable.put("ibm-860",               "Cp860");
            aliasTable.put("cp860",                 "Cp860");
            aliasTable.put("860",                   "Cp860");
            aliasTable.put("csibm860",              "Cp860");

            // MIBenum: 2049
            aliasTable.put("ibm861",                "Cp861");
            aliasTable.put("ibm-861",               "Cp861");
            aliasTable.put("cp861",                 "Cp861");
            aliasTable.put("cp-is",                 "Cp861");
            aliasTable.put("861",                   "Cp861");
            aliasTable.put("csibm861",              "Cp861");

            // MIBenum: 2013
            aliasTable.put("ibm862",                "Cp862");
            aliasTable.put("ibm-862",               "Cp862");
            aliasTable.put("cp862",                 "Cp862");
            aliasTable.put("862",                   "Cp862");
            aliasTable.put("cspc862latinhebrew",    "Cp862");

            // MIBenum: 2050
            aliasTable.put("ibm863",                "Cp863");
            aliasTable.put("ibm-863",               "Cp863");
            aliasTable.put("cp863",                 "Cp863");
            aliasTable.put("863",                   "Cp863");
            aliasTable.put("csibm863",              "Cp863");

            // MIBenum: 2051
            aliasTable.put("ibm864",                "Cp864");
            aliasTable.put("ibm-864",               "Cp864");
            aliasTable.put("cp864",                 "Cp864");
            aliasTable.put("csibm864",              "Cp864");

            // MIBenum: 2052
            aliasTable.put("ibm865",                "Cp865");
            aliasTable.put("ibm-865",               "Cp865");
            aliasTable.put("cp865",                 "Cp865");
            aliasTable.put("865",                   "Cp865");
            aliasTable.put("csibm865",              "Cp865");

            // MIBenum: ????
            aliasTable.put("ibm866",                "Cp866");
            aliasTable.put("ibm-866",               "Cp866");
            aliasTable.put("cp866",                 "Cp866");
            aliasTable.put("866",                   "Cp866");
            aliasTable.put("csibm866",              "Cp866");

            // MIBenum: ????
            aliasTable.put("ibm868",                "Cp868");
            aliasTable.put("ibm-868",               "Cp868");
            aliasTable.put("cp868",                 "Cp868");
            aliasTable.put("868",                   "Cp868");

            // MIBenum: 2054
            aliasTable.put("ibm869",                "Cp869");
            aliasTable.put("ibm-869",               "Cp869");
            aliasTable.put("cp869",                 "Cp869");
            aliasTable.put("869",                   "Cp869");
            aliasTable.put("cp-gr",                 "Cp869");
            aliasTable.put("csibm869",              "Cp869");

            // MIBenum: ????
            aliasTable.put("ibm870",                "Cp870");
            aliasTable.put("ibm-870",               "Cp870");
            aliasTable.put("cp870",                 "Cp870");
            aliasTable.put("870",                   "Cp870");

            // MIBenum: ????
            aliasTable.put("ibm871",                "Cp871");
            aliasTable.put("ibm-871",               "Cp871");
            aliasTable.put("cp871",                 "Cp871");
            aliasTable.put("871",                   "Cp871");

            // MIBenum: ????
            aliasTable.put("ibm874",                "Cp874");
            aliasTable.put("ibm-874",               "Cp874");
            aliasTable.put("cp874",                 "Cp874");
            aliasTable.put("874",                   "Cp874");

            // MIBenum: ????
            aliasTable.put("ibm875",                "Cp875");
            aliasTable.put("ibm-875",               "Cp875");
            aliasTable.put("cp875",                 "Cp875");
            aliasTable.put("875",                   "Cp875");

            // MIBenum: ????
            aliasTable.put("ibm918",                "Cp918");
            aliasTable.put("ibm-918",               "Cp918");
            aliasTable.put("cp918",                 "Cp918");
            aliasTable.put("918",                   "Cp918");

            // MIBenum: ????
            aliasTable.put("ibm921",                "Cp921");
            aliasTable.put("ibm-921",               "Cp921");
            aliasTable.put("cp921",                 "Cp921");
            aliasTable.put("921",                   "Cp921");

            // MIBenum: ????
            aliasTable.put("ibm922",                "Cp922");
            aliasTable.put("ibm-922",               "Cp922");
            aliasTable.put("cp922",                 "Cp922");
            aliasTable.put("922",                   "Cp922");

            // MIBenum: ????
            aliasTable.put("ibm930",                "Cp930");         /* MDA */
            aliasTable.put("ibm-930",               "Cp930");         /* MDA */
            aliasTable.put("cp930",                 "Cp930");         /* MDA */
            aliasTable.put("930",                   "Cp930");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm933",                "Cp933");         /* MDA */
            aliasTable.put("ibm-933",               "Cp933");         /* MDA */
            aliasTable.put("cp933",                 "Cp933");         /* MDA */
            aliasTable.put("933",                   "Cp933");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm935",                "Cp935");         /* MDA */
            aliasTable.put("ibm-935",               "Cp935");         /* MDA */
            aliasTable.put("cp935",                 "Cp935");         /* MDA */
            aliasTable.put("935",                   "Cp935");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm937",                "Cp937");         /* MDA */
            aliasTable.put("ibm-937",               "Cp937");         /* MDA */
            aliasTable.put("cp937",                 "Cp937");         /* MDA */
            aliasTable.put("937",                   "Cp937");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm939",                "Cp939");         /* MDA */
            aliasTable.put("ibm-939",               "Cp939");         /* MDA */
            aliasTable.put("cp939",                 "Cp939");         /* MDA */
            aliasTable.put("939",                   "Cp939");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm942",                "Cp942");         /* MDA */
            aliasTable.put("ibm-942",               "Cp942");         /* MDA */
            aliasTable.put("cp942",                 "Cp942");         /* MDA */
            aliasTable.put("942",                   "Cp942");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm943",                "Cp943");         /* ibm.3158 */
            aliasTable.put("ibm-943",               "Cp943");         /* ibm.3158 */
            aliasTable.put("cp943",                 "Cp943");         /* ibm.3158 */
            aliasTable.put("943",                   "Cp943");         /* ibm.3158 */

            // MIBenum: ????
            aliasTable.put("ibm948",                "Cp948");         /* MDA */
            aliasTable.put("ibm-948",               "Cp948");         /* MDA */
            aliasTable.put("cp948",                 "Cp948");         /* MDA */
            aliasTable.put("948",                   "Cp948");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm949",                "Cp949");         /* MDA */
            aliasTable.put("ibm-949",               "Cp949");         /* MDA */
            aliasTable.put("cp949",                 "Cp949");         /* MDA */
            aliasTable.put("949",                   "Cp949");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm950",                "Cp950");         /* MDA */
            aliasTable.put("ibm-950",               "Cp950");         /* MDA */
            aliasTable.put("cp950",                 "Cp950");         /* MDA */
            aliasTable.put("950",                   "Cp950");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm964",                "Cp964");         /* MDA */
            aliasTable.put("ibm-964",               "Cp964");         /* MDA */
            aliasTable.put("cp964",                 "Cp964");         /* MDA */
            aliasTable.put("964",                   "Cp964");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm970",                "Cp970");         /* MDA */
            aliasTable.put("ibm-970",               "Cp970");         /* MDA */
            aliasTable.put("cp970",                 "Cp970");         /* MDA */
            aliasTable.put("970",                   "Cp970");         /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm1006",               "Cp1006");
            aliasTable.put("ibm-1006",              "Cp1006");
            aliasTable.put("cp1006",                "Cp1006");
            aliasTable.put("1006",                  "Cp1006");

            // MIBenum: ????
            aliasTable.put("ibm1025",               "Cp1025");
            aliasTable.put("ibm-1025",              "Cp1025");
            aliasTable.put("cp1025",                "Cp1025");
            aliasTable.put("1025",                  "Cp1025");

            // MIBenum: ????
            aliasTable.put("ibm1026",               "Cp1026");
            aliasTable.put("ibm-1026",              "Cp1026");
            aliasTable.put("cp1026",                "Cp1026");
            aliasTable.put("1026",                  "Cp1026");

            // MIBenum: ????
            aliasTable.put("ibm1097",               "Cp1097");
            aliasTable.put("ibm-1097",              "Cp1097");
            aliasTable.put("cp1097",                "Cp1097");
            aliasTable.put("1097",                  "Cp1097");

            // MIBenum: ????
            aliasTable.put("ibm1098",               "Cp1098");
            aliasTable.put("ibm-1098",              "Cp1098");
            aliasTable.put("cp1098",                "Cp1098");
            aliasTable.put("1098",                  "Cp1098");

            // MIBenum: ????
            aliasTable.put("ibm1112",               "Cp1112");
            aliasTable.put("ibm-1112",              "Cp1112");
            aliasTable.put("cp1112",                "Cp1112");
            aliasTable.put("1112",                  "Cp1112");

            // MIBenum: ????
            aliasTable.put("ibm1122",               "Cp1122");
            aliasTable.put("ibm-1122",              "Cp1122");
            aliasTable.put("cp1122",                "Cp1122");
            aliasTable.put("1122",                  "Cp1122");

            // MIBenum: ????
            aliasTable.put("ibm1123",               "Cp1123");
            aliasTable.put("ibm-1123",              "Cp1123");
            aliasTable.put("cp1123",                "Cp1123");
            aliasTable.put("1123",                  "Cp1123");

            // MIBenum: ????
            aliasTable.put("ibm1124",               "Cp1124");
            aliasTable.put("ibm-1124",              "Cp1124");
            aliasTable.put("cp1124",                "Cp1124");
            aliasTable.put("1124",                  "Cp1124");

            // MIBenum: ????
            aliasTable.put("ibm1381",               "Cp1381");        /* MDA */
            aliasTable.put("ibm-1381",              "Cp1381");        /* MDA */
            aliasTable.put("cp1381",                "Cp1381");        /* MDA */
            aliasTable.put("1381",                  "Cp1381");        /* MDA */

            // MIBenum: ????
            aliasTable.put("ibm1383",               "Cp1383");        /* MDA */
            aliasTable.put("ibm-1383",              "Cp1383");        /* MDA */
            aliasTable.put("cp1383",                "Cp1383");        /* MDA */
            aliasTable.put("1383",                  "Cp1383");        /* MDA */

            // Specialized auto-detection for Japanese charsets
            aliasTable.put("jis auto detect",       "JISAutoDetect");

            // MIBenum: 16/39
            aliasTable.put("jis",                   "ISO2022JP");
            aliasTable.put("iso-2022-jp",           "ISO2022JP");
            aliasTable.put("csiso2022jp",           "ISO2022JP");
            aliasTable.put("jis_encoding",          "ISO2022JP");
            aliasTable.put("csjisencoding",         "ISO2022JP");

            // MIBenum: 17/2024
            aliasTable.put("windows-31j",           "MS932");
            aliasTable.put("cswindows31j",          "MS932");

            // JIS-defined Shift JIS
            aliasTable.put("\u30b7\u30d5\u30c8\u7b26\u53f7\u5316\u8868\u73fe",
                           "SJIS");                             // JIS name
            aliasTable.put("pck", "PCK");           // Case independent PCK alias

            if (sjisIsMS932) {
                aliasTable.put("shift_jis",         "MS932");   // IANA shift jis aliases
                aliasTable.put("csshiftjis",        "MS932");   // updated per 4556882
                aliasTable.put("x-sjis",            "MS932");
                aliasTable.put("ms_kanji",          "MS932");
            } else {
                aliasTable.put("shift_jis",         "SJIS");    // IANA shift jis aliases
                aliasTable.put("csshiftjis",        "SJIS");
                aliasTable.put("x-sjis",            "SJIS");
                aliasTable.put("ms_kanji",          "SJIS");
            }

            // MIBenum: 18
            // Japanese EUC
            aliasTable.put("eucjis",                "EUC_JP");
            aliasTable.put("euc-jp",                "EUC_JP");
            aliasTable.put("eucjp",                 "EUC_JP");
            aliasTable.put("extended_unix_code_packed_format_for_japanese",
                           "EUC_JP");
            aliasTable.put("cseucpkdfmtjapanese",   "EUC_JP");
            aliasTable.put("x-euc-jp",              "EUC_JP");
            aliasTable.put("x-eucjp",               "EUC_JP");
            aliasTable.put("eucjp-open",            "EUC_JP_Solaris"); // 1.3.1_x compatibility

            // For handing only JIS0202 and JIS0208 in linux
            aliasTable.put("euc-jp-linux",          "EUC_JP_LINUX");

            // MIBenum: 874
            aliasTable.put("windows-874",           "MS874");

            // MIBenum: 2250
            aliasTable.put("windows-1250",          "Cp1250");

            // MIBenum: 2251
            aliasTable.put("windows-1251",          "Cp1251");
            aliasTable.put("ansi-1251",             "Cp1251"); // Solaris ru_RU.ANSI1251 locale

            // MIBenum: 2252
            aliasTable.put("windows-1252",          "Cp1252");

            // MIBenum: 2253
            aliasTable.put("windows-1253",          "Cp1253");

            // MIBenum: 2254
            aliasTable.put("windows-1254",          "Cp1254");

            // MIBenum: 2255
            aliasTable.put("windows-1255",          "Cp1255");

            // MIBenum: 2256
            aliasTable.put("windows-1256",          "Cp1256");

            // MIBenum: 2257
            aliasTable.put("windows-1257",          "Cp1257");

            // MIBenum: 2258
            aliasTable.put("windows-1258",          "Cp1258");

            // MIBenum: ????
            aliasTable.put("ibm33722",              "Cp33722");       /* MDA */
            aliasTable.put("ibm-33722",             "Cp33722");       /* MDA */
            aliasTable.put("cp33722",               "Cp33722");       /* MDA */
            aliasTable.put("33722",                 "Cp33722");       /* MDA */

            // Russian KOI8-R
            aliasTable.put("koi8-r",                "KOI8_R");
            aliasTable.put("koi8",                  "KOI8_R");
            aliasTable.put("cskoi8r",               "KOI8_R");

            // Simplified Chinese
            aliasTable.put("gb2312",                "EUC_CN");
            aliasTable.put("gb2312-80",             "EUC_CN");
            aliasTable.put("gb2312-1980",           "EUC_CN");
            aliasTable.put("euc-cn",                "EUC_CN");
            aliasTable.put("euccn",                 "EUC_CN");

            aliasTable.put("big5",                  "Big5");
            aliasTable.put("big5hk",                "Big5_HKSCS");
            aliasTable.put("big5-hkscs",            "Big5_HKSCS");
            // Added for future compatibility, explicit mapping to Unicode 3.0
            aliasTable.put("big5-hkscs:unicode3.0", "Big5_HKSCS");
            aliasTable.put("big5_solaris",          "Big5_Solaris");

            // Traditional Chinese
            aliasTable.put("cns11643",              "EUC_TW");
            aliasTable.put("euc-tw",                "EUC_TW");
            aliasTable.put("euctw",                 "EUC_TW");

            // Korean
            aliasTable.put("ksc5601",               "EUC_KR");
            aliasTable.put("euc-kr",                "EUC_KR");
            aliasTable.put("euckr",                 "EUC_KR");
            aliasTable.put("ks_c_5601-1987",        "EUC_KR");
            aliasTable.put("ksc5601-1987",          "EUC_KR");
            aliasTable.put("ksc5601_1987",          "EUC_KR");
            aliasTable.put("ksc_5601",              "EUC_KR");
            aliasTable.put("5601",                  "EUC_KR");

            aliasTable.put("ksc5601-1992",          "Johab");
            aliasTable.put("ksc5601_1992",          "Johab");
            aliasTable.put("ms1361",                "Johab");

            aliasTable.put("windows-949",           "MS949");

            //MIBenum: 37
            aliasTable.put("iso-2022-kr",           "ISO2022KR");
            aliasTable.put("csiso2022kr",           "ISO2022KR");

            // Thai
            aliasTable.put("tis620.2533",           "TIS620");
            aliasTable.put("tis-620",               "TIS620"); // Linux name

            // X11 Compound Text
            aliasTable.put("x-compound-text",       "COMPOUND_TEXT");
            aliasTable.put("x11-compound_text",     "COMPOUND_TEXT");

            // Variants
            aliasTable.put("cp942c", "Cp942C");
            aliasTable.put("cp943c", "Cp943C");
            aliasTable.put("cp949c", "Cp949C");
            aliasTable.put("iscii", "ISCII91");

            installedAll = true;
        }
    }

    /**
     * For Solaris:
     * always returns "PCK"
     *
     * For other platforms:
     * method returns "MS932" if the file.encoding property value is "MS932"
     * or an alias of "MS932"
     * otherwise, "SJIS", regardless of its
     * actual file.encoding value. This method is called from the JIS
     * Auto Detect converter.
     */
    static String getSJISName() {
        String encodeName = AccessController.doPrivileged(
                                               new PrivilegedAction<String>() {
            public String run() {
                String osName = System.getProperty("os.name");
                if (osName.equals("Solaris") || osName.equals("SunOS")){
                    return "PCK";
                }
                else {
                    return System.getProperty("file.encoding", null);
                }
            }
        });

        if (encodeName != null) {
            if (encodeName.equals("MS932"))
                return encodeName;
            encodeName = aliasName(encodeName);
        }
        return (encodeName != null && encodeName.equals("MS932")) ? encodeName : "SJIS";
    }


    static String getEUCJPName() {
      String encodeName = AccessController.doPrivileged(
                                              new PrivilegedAction<String>() {
          public String run() {
              String osName = System.getProperty("os.name");
              if (osName.equals("Solaris") || osName.equals("SunOS"))
                  return "eucJP-open";
              else
                  return "EUC_JP";
          }
      });
      return encodeName;
    }
}
