### Question:
TextUtil { protected static String urlEncode( final byte[] rs ) { final StringBuilder result = new StringBuilder( rs.length * 2 ); for( final byte r : rs ) { final char c = ( char )r; switch( c ) { case '_': case '.': case '*': case '-': case '/': result.append( c ); break; case ' ': result.append( '+' ); break; default: if( ( c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z' ) || ( c >= '0' && c <= '9' ) ) { result.append( c ); } else { result.append( '%' ); result.append( HEX_DIGITS.charAt( ( c & 0xF0 ) >> 4 ) ); result.append( HEX_DIGITS.charAt( c & 0x0F ) ); } } } return result.toString(); } 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 testEncodeName_1() { final String name = "Hello/World"; Assertions.assertEquals( "Hello/World", TextUtil.urlEncode(name,"ISO-8859-1") ); }
@Test public void testEncodeName_2() { final String name = "Hello~World"; Assertions.assertEquals( "Hello%7EWorld", TextUtil.urlEncode(name,"ISO-8859-1") ); }
@Test public void testEncodeName_3() { final String name = "Hello/World ~"; Assertions.assertEquals( "Hello/World+%7E", TextUtil.urlEncode(name,"ISO-8859-1") ); }