code: public static String decodeUrlPath(String href, String encoding) throws UnsupportedEncodingException {
  		if(href.startsWith("tel:")) return href;
  		int len = href.length();
  		int pos = 0;
  		StringBuilder SB = new StringBuilder(href.length()*2); // Leave a little room for encoding
  		while(pos<len) {
  			int nextPos = StringUtility.indexOf(href, noEncodeCharacters, pos);
  			if(nextPos==-1) {
  				SB.append(URLDecoder.decode(href.substring(pos, len), encoding));
  				pos = len;
  			} else {
  				SB.append(URLDecoder.decode(href.substring(pos, nextPos), encoding));
  				char nextChar = href.charAt(nextPos);
  				if(nextChar=='?') {
  					// End decoding
  					SB.append(href, nextPos, len);
  					pos = len;
  				} else {
  					SB.append(nextChar);
  					pos = nextPos+1;
  				}
  			}
  		}
  		return SB.toString();
  	}
docs: Decodes the URL up to the first ?, if present.  Does not decode
  any characters in the set { '?', ':', '/', ';', '#', '+' }.
  
  Does not decode tel: urls (case-sensitive).
  
  @see  #encodeUrlPath(java.lang.String)