/** * Constructs a new <code>String</code> by decoding the specified array of bytes using the given * charset. * * <p>This method catches {@link UnsupportedEncodingException} and re-throws it as {@link * IllegalStateException}, which should never happen for a required charset name. Use this method * when the encoding is required to be in the JRE. * * @param bytes The bytes to be decoded into characters * @param charsetName The name of a required {@link java.nio.charset.Charset} * @return A new <code>String</code> decoded from the specified array of bytes using the given * charset. * @throws IllegalStateException Thrown when a {@link UnsupportedEncodingException} is caught, * which should never happen for a required charset name. * @see CharEncoding * @see String#String(byte[], String) */ public static String newString(byte[] bytes, String charsetName) { if (bytes == null) { return null; } try { return new String(bytes, charsetName); } catch (UnsupportedEncodingException e) { throw StringUtils.newIllegalStateException(charsetName, e); } }
/** * Encodes the given string into a sequence of bytes using the named charset, storing the result * into a new byte array. * * <p>This method catches {@link UnsupportedEncodingException} and rethrows it as {@link * IllegalStateException}, which should never happen for a required charset name. Use this method * when the encoding is required to be in the JRE. * * @param string the String to encode * @param charsetName The name of a required {@link java.nio.charset.Charset} * @return encoded bytes * @throws IllegalStateException Thrown when a {@link UnsupportedEncodingException} is caught, * which should never happen for a required charset name. * @see CharEncoding * @see String#getBytes(String) */ public static byte[] getBytesUnchecked(String string, String charsetName) { if (string == null) { return null; } try { return string.getBytes(charsetName); } catch (UnsupportedEncodingException e) { throw StringUtils.newIllegalStateException(charsetName, e); } }