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.lang;
019:
020: import java.io.UnsupportedEncodingException;
021:
022: /**
023: * <p>
024: * Character encoding names required of every implementation of the Java platform.
025: * </p>
026: *
027: * <p>
028: * According to <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
029: * encoding names</a>:
030: * <p>
031: * <cite>Every implementation of the Java platform is required to support the following character encodings. Consult the
032: * release documentation for your implementation to see if any other encodings are supported.</cite>
033: * </p>
034: * </p>
035: *
036: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character encoding
037: * names</a>
038: * @author Apache Software Foundation
039: * @since 2.1
040: * @version $Id: CharEncoding.java 437554 2006-08-28 06:21:41Z bayard $
041: */
042: public class CharEncoding {
043:
044: /**
045: * <p>
046: * ISO Latin Alphabet #1, also known as ISO-LATIN-1.
047: * </p>
048: * <p>
049: * Every implementation of the Java platform is required to support this character encoding.
050: * </p>
051: *
052: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
053: * encoding names</a>
054: */
055: public static final String ISO_8859_1 = "ISO-8859-1";
056:
057: /**
058: * <p>
059: * Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block of the Unicode character set.
060: * </p>
061: * <p>
062: * Every implementation of the Java platform is required to support this character encoding.
063: * </p>
064: *
065: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
066: * encoding names</a>
067: */
068: public static final String US_ASCII = "US-ASCII";
069:
070: /**
071: * <p>
072: * Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial byte-order mark (either
073: * order accepted on input, big-endian used on output).
074: * </p>
075: * <p>
076: * Every implementation of the Java platform is required to support this character encoding.
077: * </p>
078: *
079: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
080: * encoding names</a>
081: */
082: public static final String UTF_16 = "UTF-16";
083:
084: /**
085: * <p>
086: * Sixteen-bit Unicode Transformation Format, big-endian byte order.
087: * </p>
088: * <p>
089: * Every implementation of the Java platform is required to support this character encoding.
090: * </p>
091: *
092: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
093: * encoding names</a>
094: */
095: public static final String UTF_16BE = "UTF-16BE";
096:
097: /**
098: * <p>
099: * Sixteen-bit Unicode Transformation Format, little-endian byte order.
100: * </p>
101: * <p>
102: * Every implementation of the Java platform is required to support this character encoding.
103: * </p>
104: *
105: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
106: * encoding names</a>
107: */
108: public static final String UTF_16LE = "UTF-16LE";
109:
110: /**
111: * <p>
112: * Eight-bit Unicode Transformation Format.
113: * </p>
114: * <p>
115: * Every implementation of the Java platform is required to support this character encoding.
116: * </p>
117: *
118: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
119: * encoding names</a>
120: */
121: public static final String UTF_8 = "UTF-8";
122:
123: /**
124: * <p>
125: * Returns whether the named charset is supported.
126: * </p>
127: * <p>
128: * This is similar to <a
129: * href="http://java.sun.com/j2se/1.4.2/docs/api/java/nio/charset/Charset.html#isSupported(java.lang.String)">
130: * java.nio.charset.Charset.isSupported(String)</a>
131: * </p>
132: *
133: * @param name
134: * the name of the requested charset; may be either a canonical name or an alias
135: * @return <code>true</code> if, and only if, support for the named charset is available in the current Java
136: * virtual machine
137: *
138: * @see <a href="http://java.sun.com/j2se/1.3/docs/api/java/lang/package-summary.html#charenc">JRE character
139: * encoding names</a>
140: */
141: public static boolean isSupported(String name) {
142: if (name == null) {
143: return false;
144: }
145: try {
146: new String(ArrayUtils.EMPTY_BYTE_ARRAY, name);
147: } catch (UnsupportedEncodingException e) {
148: return false;
149: }
150: return true;
151: }
152:
153: }
|