private static char[] getReplacementChars( char ch ) {
    char[] replacement = null;
    if( ch == '"' ) {
      replacement = QUOT_CHARS;
    } else if( ch == '\\' ) {
      replacement = BS_CHARS;
    } else if( ch == '\n' ) {
      replacement = LF_CHARS;
    } else if( ch == '\r' ) {
      replacement = CR_CHARS;
    } else if( ch == '\t' ) {
      replacement = TAB_CHARS;
    } else if( ch == '\u2028' ) {
      replacement = UNICODE_2028_CHARS;
    } else if( ch == '\u2029' ) {
      replacement = UNICODE_2029_CHARS;
    } else if( ch >= CONTROL_CHARACTERS_START && ch <= CONTROL_CHARACTERS_END ) {
      replacement = new char[] { '\\', 'u',  '0', '0', '0', '0' };
      replacement[4] = HEX_DIGITS[ ch >> 4 & 0x000f ];
      replacement[5] = HEX_DIGITS[ ch & 0x000f ];
    }
    return replacement;
  }