code: public static String unescapeUriPathSegment(final String text, final String encoding) {
          if (encoding == null) {
              throw new IllegalArgumentException("Argument 'encoding' cannot be null");
          }
          return UriEscapeUtil.unescape(text, UriEscapeUtil.UriEscapeType.PATH_SEGMENT, encoding);
      }
docs: <p>
  Perform am URI path segment <strong>unescape</strong> operation
  on a <tt>String</tt> input.
  </p>
  <p>
  This method will unescape every percent-encoded (<tt>%HH</tt>) sequences present in input,
  even for those characters that do not need to be percent-encoded in this context (unreserved characters
  can be percent-encoded even if/when this is not required, though it is not generally considered a
  good practice).
  </p>
  <p>
  This method will use specified <tt>encoding</tt> in order to determine the characters specified in the
  percent-encoded byte sequences.
  </p>
  <p>
  This method is <strong>thread-safe</strong>.
  </p>
  
  @param text the <tt>String</tt> to be unescaped.
  @param encoding the encoding to be used for unescaping.
  @return The unescaped result <tt>String</tt>. As a memory-performance improvement, will return the exact
  same object as the <tt>text</tt> input argument if no unescaping modifications were required (and
  no additional <tt>String</tt> objects will be created during processing). Will
  return <tt>null</tt> if input is <tt>null</tt>.