001: /*
002:
003: ============================================================================
004: The Apache Software License, Version 1.1
005: ============================================================================
006:
007: Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
008:
009: Redistribution and use in source and binary forms, with or without modifica-
010: tion, are permitted provided that the following conditions are met:
011:
012: 1. Redistributions of source code must retain the above copyright notice,
013: this list of conditions and the following disclaimer.
014:
015: 2. Redistributions in binary form must reproduce the above copyright notice,
016: this list of conditions and the following disclaimer in the documentation
017: and/or other materials provided with the distribution.
018:
019: 3. The end-user documentation included with the redistribution, if any, must
020: include the following acknowledgment: "This product includes software
021: developed by the Apache Software Foundation (http://www.apache.org/)."
022: Alternately, this acknowledgment may appear in the software itself, if
023: and wherever such third-party acknowledgments normally appear.
024:
025: 4. The names "Batik" and "Apache Software Foundation" must not be
026: used to endorse or promote products derived from this software without
027: prior written permission. For written permission, please contact
028: apache@apache.org.
029:
030: 5. Products derived from this software may not be called "Apache", nor may
031: "Apache" appear in their name, without prior written permission of the
032: Apache Software Foundation.
033:
034: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
035: INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
036: FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
037: APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
038: INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLU-
039: DING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
040: OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
041: ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
042: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
043: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
044:
045: This software consists of voluntary contributions made by many individuals
046: on behalf of the Apache Software Foundation. For more information on the
047: Apache Software Foundation, please see <http://www.apache.org/>.
048:
049: */
050:
051: package org.apache.batik.util;
052:
053: import java.util.HashMap;
054: import java.util.Map;
055:
056: /**
057: * This class contains utility functions to manage encodings.
058: *
059: * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
060: * @version $Id$
061: */
062: public class EncodingUtilities {
063:
064: /**
065: * The standard to Java encoding table.
066: */
067: protected final static Map ENCODINGS = new HashMap();
068: static {
069: ENCODINGS.put("UTF-8", "UTF8");
070: ENCODINGS.put("UTF-16", "Unicode");
071: ENCODINGS.put("US-ASCII", "ASCII");
072:
073: ENCODINGS.put("ISO-8859-1", "8859_1");
074: ENCODINGS.put("ISO-8859-2", "8859_2");
075: ENCODINGS.put("ISO-8859-3", "8859_3");
076: ENCODINGS.put("ISO-8859-4", "8859_4");
077: ENCODINGS.put("ISO-8859-5", "8859_5");
078: ENCODINGS.put("ISO-8859-6", "8859_6");
079: ENCODINGS.put("ISO-8859-7", "8859_7");
080: ENCODINGS.put("ISO-8859-8", "8859_8");
081: ENCODINGS.put("ISO-8859-9", "8859_9");
082: ENCODINGS.put("ISO-2022-JP", "JIS");
083:
084: ENCODINGS.put("WINDOWS-31J", "MS932");
085: ENCODINGS.put("EUC-JP", "EUCJIS");
086: ENCODINGS.put("GB2312", "GB2312");
087: ENCODINGS.put("BIG5", "Big5");
088: ENCODINGS.put("EUC-KR", "KSC5601");
089: ENCODINGS.put("ISO-2022-KR", "ISO2022KR");
090: ENCODINGS.put("KOI8-R", "KOI8_R");
091:
092: ENCODINGS.put("EBCDIC-CP-US", "Cp037");
093: ENCODINGS.put("EBCDIC-CP-CA", "Cp037");
094: ENCODINGS.put("EBCDIC-CP-NL", "Cp037");
095: ENCODINGS.put("EBCDIC-CP-WT", "Cp037");
096: ENCODINGS.put("EBCDIC-CP-DK", "Cp277");
097: ENCODINGS.put("EBCDIC-CP-NO", "Cp277");
098: ENCODINGS.put("EBCDIC-CP-FI", "Cp278");
099: ENCODINGS.put("EBCDIC-CP-SE", "Cp278");
100: ENCODINGS.put("EBCDIC-CP-IT", "Cp280");
101: ENCODINGS.put("EBCDIC-CP-ES", "Cp284");
102: ENCODINGS.put("EBCDIC-CP-GB", "Cp285");
103: ENCODINGS.put("EBCDIC-CP-FR", "Cp297");
104: ENCODINGS.put("EBCDIC-CP-AR1", "Cp420");
105: ENCODINGS.put("EBCDIC-CP-HE", "Cp424");
106: ENCODINGS.put("EBCDIC-CP-BE", "Cp500");
107: ENCODINGS.put("EBCDIC-CP-CH", "Cp500");
108: ENCODINGS.put("EBCDIC-CP-ROECE", "Cp870");
109: ENCODINGS.put("EBCDIC-CP-YU", "Cp870");
110: ENCODINGS.put("EBCDIC-CP-IS", "Cp871");
111: ENCODINGS.put("EBCDIC-CP-AR2", "Cp918");
112:
113: ENCODINGS.put("CP1252", "Cp1252");
114: }
115:
116: /**
117: * This class does not need to be instantiated.
118: */
119: protected EncodingUtilities() {
120: }
121:
122: /**
123: * Returns the Java encoding string mapped with the given standard
124: * encoding string.
125: * @return null if no mapping was found.
126: */
127: public static String javaEncoding(String encoding) {
128: return (String) ENCODINGS.get(encoding.toUpperCase());
129: }
130: }
|