public static String encodeBackslash ( CharSequence s , Legal legal ) { StringBuilder b = new StringBuilder ( ( int ) ( s . length ( ) * 1.5 ) ) ; for ( int i = 0 ; i < s . length ( ) ; i ++ ) { if ( legal . isLegal ( s . charAt ( i ) ) ) { b . append ( s . charAt ( i ) ) ; } else { if ( charToBackslash . containsKey ( s . charAt ( i ) ) ) { b . append ( charToBackslash . get ( s . charAt ( i ) ) ) ; continue ; } b . append ( "\\u" ) ; String hex = Integer . toHexString ( s . charAt ( i ) ) ; for ( int j = 0 ; j < 4 - hex . length ( ) ; j ++ ) b . append ( ' ' ) ; b . append ( hex ) ; } } return ( b . toString ( ) ) ; }
Encodes with backslash all illegal characters