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 18 package org.apache.commons.lang3; 19 20 import java.nio.charset.Charset; 21 import java.nio.charset.IllegalCharsetNameException; 22 23 /** 24 * Character encoding names required of every implementation of the Java platform. 25 * 26 * <p>According to <a href="https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html">JRE character 27 * encoding names</a>:</p> 28 * 29 * <p><cite>Every implementation of the Java platform is required to support the following character encodings. 30 * Consult the release documentation for your implementation to see if any other encodings are supported. 31 * </cite></p> 32 * 33 * @see <a href="https://docs.oracle.com/javase/8/docs/technotes/guides/intl/encoding.doc.html">JRE character encoding names</a> 34 * @since 2.1 35 * @deprecated Java 7 introduced {@link java.nio.charset.StandardCharsets}, which defines these constants as 36 * {@link Charset} objects. Use {@link Charset#name()} to get the string values provided in this class. 37 * This class will be removed in a future release. 38 */ 39 @Deprecated 40 public class CharEncoding { 41 42 /** 43 * ISO Latin Alphabet #1, also known as ISO-LATIN-1. 44 * 45 * <p>Every implementation of the Java platform is required to support this character encoding.</p> 46 */ 47 public static final String ISO_8859_1 = "ISO-8859-1"; 48 49 /** 50 * Seven-bit ASCII, also known as ISO646-US, also known as the Basic Latin block 51 * of the Unicode character set. 52 * 53 * <p>Every implementation of the Java platform is required to support this character encoding.</p> 54 */ 55 public static final String US_ASCII = "US-ASCII"; 56 57 /** 58 * Sixteen-bit Unicode Transformation Format, byte order specified by a mandatory initial 59 * byte-order mark (either order accepted on input, big-endian used on output). 60 * 61 * <p>Every implementation of the Java platform is required to support this character encoding.</p> 62 */ 63 public static final String UTF_16 = "UTF-16"; 64 65 /** 66 * Sixteen-bit Unicode Transformation Format, big-endian byte order. 67 * 68 * <p>Every implementation of the Java platform is required to support this character encoding.</p> 69 */ 70 public static final String UTF_16BE = "UTF-16BE"; 71 72 /** 73 * Sixteen-bit Unicode Transformation Format, little-endian byte order. 74 * 75 * <p>Every implementation of the Java platform is required to support this character encoding.</p> 76 */ 77 public static final String UTF_16LE = "UTF-16LE"; 78 79 /** 80 * Eight-bit Unicode Transformation Format. 81 * 82 * <p>Every implementation of the Java platform is required to support this character encoding.</p> 83 */ 84 public static final String UTF_8 = "UTF-8"; 85 86 /** 87 * Returns whether the named charset is supported. 88 * 89 * <p>This is similar to <a 90 * href="https://docs.oracle.com/javase/8/docs/api/java/nio/charset/Charset.html#isSupported%28java.lang.String%29"> 91 * java.nio.charset.Charset.isSupported(String)</a> but handles more formats</p> 92 * 93 * @param name the name of the requested charset; may be either a canonical name or an alias, null returns false 94 * @return {@code true} if the charset is available in the current Java virtual machine 95 * @deprecated Please use {@link Charset#isSupported(String)} instead, although be aware that {@code null} 96 * values are not accepted by that method and an {@link IllegalCharsetNameException} may be thrown. 97 */ 98 @Deprecated 99 public static boolean isSupported(final String name) { 100 if (name == null) { 101 return false; 102 } 103 try { 104 return Charset.isSupported(name); 105 } catch (final IllegalCharsetNameException ex) { 106 return false; 107 } 108 } 109 110 }