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