question: public static String decode ( String encodedValue , final String encoding ) { try { if ( encodedValue != null ) { String previousEncodedValue ; do { previousEncodedValue = encodedValue ; encodedValue = URLDecoder . decode ( encodedValue , encoding ) ; } while ( ! encodedValue . equals ( previousEncodedValue ) ) ; } return encodedValue ; } catch ( UnsupportedEncodingException ignore ) { return encodedValue ; } }
target:  Decodes the encoded String value using the specified encoding (such as UTF-8). It is assumed the String value was encoded with the URLEncoder using the specified encoding. This method handles UnsupportedEncodingException by just returning the encodedValue. Since it is possible for a String value to have been encoded multiple times, the String value is decoded until the value stops changing (in other words, until the value is completely decoded). <p/>