code: public static String percentDecode(String source) throws AuthException {
      try {
        return URLDecoder.decode(source, "UTF-8");
      } catch (java.io.UnsupportedEncodingException ex) {
        throw new AuthException("cannot decode value '" + source + "'", ex);
      }
    }
docs: Returns a decoded string.
  
  @param source source string for decoding
  @return decoded string
  @throws AuthException if character encoding needs to be consulted, but
  named character encoding is not supported