900 lines · 42.4 KB · Java
RawDownload
/* * Copyright (c) 1996, 2010, 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. */@Deprecatedpublic 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("ibm833",                "Cp833");            aliasTable.put("ibm-833",               "Cp833");            aliasTable.put("cp833",                 "Cp833");            aliasTable.put("833",                   "Cp833");             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

Lines 1–500 of 900.