public static String quoteCanonical ( String s ) { if ( s == null || s . length ( ) == 0 ) { return "\"\"" ; } int len = s . length ( ) ; StringBuilder sb = new StringBuilder ( len + 4 ) ; sb . append ( ' ' ) ; for ( int i = 0 ; i < len ; i += 1 ) { char c = s . charAt ( i ) ; switch ( c ) { case ' ' : case ' ' : sb . append ( ' ' ) ; sb . append ( c ) ; break ; default : if ( c < ' ' ) { String t = "000" + Integer . toHexString ( c ) ; sb . append ( "\\u" ) . append ( t . substring ( t . length ( ) - 4 ) ) ; } else { sb . append ( c ) ; } } } sb . append ( ' ' ) ; return sb . toString ( ) ; }
Minimal escape form .