code: public static String decode(final byte[] pData, final int pOffset, final int pLength, final String pCharset) {
          try {
              return new String(pData, pOffset, pLength, pCharset);
          }
          catch (UnsupportedEncodingException e) {
              throw new UnsupportedCharsetException(pCharset);
          }
      }
docs: Constructs a new {@link String} by decoding the specified sub array of bytes using the specified charset.
  Replacement for {@link String#String(byte[], int, int, String) new String(byte[], int, int, String)}, that does
  not throw the checked {@link UnsupportedEncodingException},
  but instead the unchecked {@link UnsupportedCharsetException} if the character set is not supported.
  
  @param pData the bytes to be decoded to characters
  @param pOffset the index of the first byte to decode
  @param pLength the number of bytes to decode
  @param pCharset the name of a supported character set
  @return a newly created string.
  @throws UnsupportedCharsetException
  
  @see String#String(byte[], int, int, String)