001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     *
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     *
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    
018    package org.apache.commons.codec;
019    
020    /**
021     * Character encoding names required of every implementation of the Java platform.
022     *
023     * From the Java documentation <a
024     * href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>:
025     * <p>
026     * <cite>Every implementation of the Java platform is required to support the following character encodings. Consult the
027     * release documentation for your implementation to see if any other encodings are supported. Consult the release
028     * documentation for your implementation to see if any other encodings are supported.</cite>
029     * </p>
030     *
031     * <ul>
032     * <li><code>US-ASCII</code><br/>
033     * Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set.</li>
034     * <li><code>ISO-8859-1</code><br/>
035     * ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1.</li>
036     * <li><code>UTF-8</code><br/>
037     * Eight-bit Unicode Transformation Format.</li>
038     * <li><code>UTF-16BE</code><br/>
039     * Sixteen-bit Unicode Transformation Format, big-endian byte order.</li>
040     * <li><code>UTF-16LE</code><br/>
041     * Sixteen-bit Unicode Transformation Format, little-endian byte order.</li>
042     * <li><code>UTF-16</code><br/>
043     * Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial byte-order mark (either order
044     * accepted on input, big-endian used on output.)</li>
045     * </ul>
046     *
047     * This perhaps would best belong in the [lang] project. Even if a similar interface is defined in [lang], it is not
048     * foreseen that [codec] would be made to depend on [lang].
049     *
050     * <p>
051     * This class is immutable and thread-safe.
052     * </p>
053     *
054     * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
055     * @since 1.4
056     * @version $Id: CharEncoding.html 889935 2013-12-11 05:05:13Z ggregory $
057     */
058    public class CharEncoding {
059        /**
060         * CharEncodingISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1.
061         * <p>
062         * Every implementation of the Java platform is required to support this character encoding.
063         *
064         * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
065         */
066        public static final String ISO_8859_1 = "ISO-8859-1";
067    
068        /**
069         * Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block of the Unicode character set.
070         * <p>
071         * Every implementation of the Java platform is required to support this character encoding.
072         *
073         * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
074         */
075        public static final String US_ASCII = "US-ASCII";
076    
077        /**
078         * Sixteen-bit Unicode Transformation Format, The byte order specified by a mandatory initial byte-order mark
079         * (either order accepted on input, big-endian used on output)
080         * <p>
081         * Every implementation of the Java platform is required to support this character encoding.
082         *
083         * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
084         */
085        public static final String UTF_16 = "UTF-16";
086    
087        /**
088         * Sixteen-bit Unicode Transformation Format, big-endian byte order.
089         * <p>
090         * Every implementation of the Java platform is required to support this character encoding.
091         *
092         * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
093         */
094        public static final String UTF_16BE = "UTF-16BE";
095    
096        /**
097         * Sixteen-bit Unicode Transformation Format, little-endian byte order.
098         * <p>
099         * Every implementation of the Java platform is required to support this character encoding.
100         *
101         * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
102         */
103        public static final String UTF_16LE = "UTF-16LE";
104    
105        /**
106         * Eight-bit Unicode Transformation Format.
107         * <p>
108         * Every implementation of the Java platform is required to support this character encoding.
109         *
110         * @see <a href="http://download.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
111         */
112        public static final String UTF_8 = "UTF-8";
113    }