code: 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);
          }
      }
docs: 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.
  </p>
  
  @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 <a href="http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/CharEncoding.html">CharEncoding</a>
  @see String#String(byte[], String)