Yet Another WebIOPi+
 All Classes Namespaces Files Functions Variables Macros Pages
Charsets.java
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package org.apache.commons.codec;
18 
19 import java.nio.charset.Charset;
20 
21 /**
22  * Charsets required of every implementation of the Java platform.
23  *
24  * From the Java documentation <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard
25  * charsets</a>:
26  * <p>
27  * <cite>Every implementation of the Java platform is required to support the following character encodings. Consult the
28  * release documentation for your implementation to see if any other encodings are supported. Consult the release
29  * documentation for your implementation to see if any other encodings are supported. </cite>
30  * </p>
31  *
32  * <ul>
33  * <li><code>US-ASCII</code><br/>
34  * Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set.</li>
35  * <li><code>ISO-8859-1</code><br/>
36  * ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1.</li>
37  * <li><code>UTF-8</code><br/>
38  * Eight-bit Unicode Transformation Format.</li>
39  * <li><code>UTF-16BE</code><br/>
40  * Sixteen-bit Unicode Transformation Format, big-endian byte order.</li>
41  * <li><code>UTF-16LE</code><br/>
42  * Sixteen-bit Unicode Transformation Format, little-endian byte order.</li>
43  * <li><code>UTF-16</code><br/>
44  * Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial byte-order mark (either order
45  * accepted on input, big-endian used on output.)</li>
46  * </ul>
47  *
48  * This perhaps would best belong in the Commons Lang project. Even if a similar class is defined in Commons Lang, it is
49  * not foreseen that Commons Codec would be made to depend on Commons Lang.
50  *
51  * <p>
52  * This class is immutable and thread-safe.
53  * </p>
54  *
55  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
56  * @since 1.7
57  * @version $Id: CharEncoding.java 1173287 2011-09-20 18:16:19Z ggregory $
58  */
59 public class Charsets {
60 
61  //
62  // This class should only contain Charset instances for required encodings. This guarantees that it will load
63  // correctly and without delay on all Java platforms.
64  //
65 
66  /**
67  * Returns the given Charset or the default Charset if the given Charset is null.
68  *
69  * @param charset
70  * A charset or null.
71  * @return the given Charset or the default Charset if the given Charset is null
72  */
73  public static Charset toCharset(final Charset charset) {
74  return charset == null ? Charset.defaultCharset() : charset;
75  }
76 
77  /**
78  * Returns a Charset for the named charset. If the name is null, return the default Charset.
79  *
80  * @param charset
81  * The name of the requested charset, may be null.
82  * @return a Charset for the named charset
83  * @throws java.nio.charset.UnsupportedCharsetException
84  * If the named charset is unavailable
85  */
86  public static Charset toCharset(final String charset) {
87  return charset == null ? Charset.defaultCharset() : Charset.forName(charset);
88  }
89 
90  /**
91  * CharEncodingISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1.
92  * <p>
93  * Every implementation of the Java platform is required to support this character encoding.
94  *
95  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
96  */
97  public static final Charset ISO_8859_1 = Charset.forName(CharEncoding.ISO_8859_1);
98 
99  /**
100  * Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block of the Unicode character set.
101  * <p>
102  * Every implementation of the Java platform is required to support this character encoding.
103  *
104  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
105  */
106  public static final Charset US_ASCII = Charset.forName(CharEncoding.US_ASCII);
107 
108  /**
109  * Sixteen-bit Unicode Transformation Format, The byte order specified by a mandatory initial byte-order mark
110  * (either order accepted on input, big-endian used on output)
111  * <p>
112  * Every implementation of the Java platform is required to support this character encoding.
113  *
114  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
115  */
116  public static final Charset UTF_16 = Charset.forName(CharEncoding.UTF_16);
117 
118  /**
119  * Sixteen-bit Unicode Transformation Format, big-endian byte order.
120  * <p>
121  * Every implementation of the Java platform is required to support this character encoding.
122  *
123  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
124  */
125  public static final Charset UTF_16BE = Charset.forName(CharEncoding.UTF_16BE);
126 
127  /**
128  * Sixteen-bit Unicode Transformation Format, little-endian byte order.
129  * <p>
130  * Every implementation of the Java platform is required to support this character encoding.
131  *
132  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
133  */
134  public static final Charset UTF_16LE = Charset.forName(CharEncoding.UTF_16LE);
135 
136  /**
137  * Eight-bit Unicode Transformation Format.
138  * <p>
139  * Every implementation of the Java platform is required to support this character encoding.
140  *
141  * @see <a href="http://docs.oracle.com/javase/6/docs/api/java/nio/charset/Charset.html">Standard charsets</a>
142  */
143  public static final Charset UTF_8 = Charset.forName(CharEncoding.UTF_8);
144 }
static final Charset US_ASCII
Definition: Charsets.java:106
static final Charset UTF_16BE
Definition: Charsets.java:125
static final Charset UTF_8
Definition: Charsets.java:143
static Charset toCharset(final Charset charset)
Definition: Charsets.java:73
static final Charset UTF_16LE
Definition: Charsets.java:134
static final Charset ISO_8859_1
Definition: Charsets.java:97
static final Charset UTF_16
Definition: Charsets.java:116
static Charset toCharset(final String charset)
Definition: Charsets.java:86