code: public static String urlDecode(String strIn) {
          // Null begets null.
          if (strIn == null) {
              return null;
          }
  
          try {
              return URLDecoder.decode(strIn, "UTF-8");
          } catch (UnsupportedEncodingException e) {
              // This should never happen since UTF-8 always exists.
              throw new IllegalArgumentException("UTF-8");
          }
      }
docs: Decode the given string by replacing %-escape sequences with the corresponding
  real characters. For example "A%20B" returns "A B". If a null string is passed,
  the result is null. This method calls URLDecoder.decode("UTF-8", strIn), which
  converts UTF-8 sequences to Unicode characters. It also converts non-escaped
  '+' signs into a space.
  
  @param  strIn    Input string to decode.
  @return          Ouput string with %hh sequences replaced by the corresponding
  character, or null if strIn is null.
  @see             #urlEncode(String)