### Question:
TextUtil { protected static String urlDecode( final byte[] bytes, final String encoding ) throws IllegalArgumentException { if( bytes == null ) { return null; } final byte[] decodeBytes = new byte[ bytes.length ]; int decodedByteCount = 0; try { for( int count = 0; count < bytes.length; count++ ) { switch( bytes[count] ) { case '+': decodeBytes[decodedByteCount++] = ( byte ) ' '; break ; case '%': decodeBytes[decodedByteCount++] = ( byte )( ( HEX_DIGITS.indexOf( bytes[++count] ) << 4 ) + ( HEX_DIGITS.indexOf( bytes[++count] ) ) ); break ; default: decodeBytes[decodedByteCount++] = bytes[count] ; } } } catch( final IndexOutOfBoundsException ae ) { throw new IllegalArgumentException( "Malformed UTF-8 string?" ); } return new String(decodeBytes, 0, decodedByteCount, Charset.forName( encoding ) ); } private  TextUtil(); static String urlEncodeUTF8( final String text ); static String urlDecodeUTF8( final String utf8 ); static String urlEncode( final String data, final String encoding ); static String urlDecode( final String data, final String encoding ); static String replaceEntities( String src ); static String replaceString( final String orig, final String src, final String dest ); static String replaceString( final String orig, final int start, final int end, final String text ); static String replaceStringCaseUnsensitive( final String orig, final String src, final String dest ); static int parseIntParameter( final String value, final int defvalue ); static int getIntegerProperty( final Properties props, final String key, final int defVal ); static boolean getBooleanProperty( final Properties props, final String key, final boolean defval ); static String getStringProperty( final Properties props, final String key, final String defval ); static String getRequiredProperty( final Properties props, final String key ); static String getCanonicalFilePathProperty( final Properties props, final String key, final String defval ); static boolean isPositive( String val ); static String normalizePostData( final String postData ); static String beautifyString( final String s ); static String beautifyString( final String s, final String space ); static String cleanString( String text, final String allowedChars ); static Properties createProperties( final String[] values ); static int countSections( final String pagedata ); static String getSection( final String pagedata, final int section ); static String repeatString( final String what, final int times ); static String native2Ascii( final String s ); static String toHexString( final byte[] bytes ); static boolean isNumber( String s ); static String generateRandomPassword(); static final int PASSWORD_LENGTH; static final String LEGACY_CHARS_ALLOWED; static final String PUNCTUATION_CHARS_ALLOWED; }### Answer:
@Test public void testDecodeName_1() { final String name = "Hello/World+%7E+%2F"; Assertions.assertEquals( "Hello/World ~ /", TextUtil.urlDecode(name,"ISO-8859-1") ); }