public static String stripControlCharacters(String rawValue){
  if (rawValue == null) {
    return null;
  }
  String value=replaceEntities(rawValue);
  boolean hasControlChars=false;
  for (int i=value.length() - 1; i >= 0; i--) {
    if (Character.isISOControl(value.charAt(i))) {
      hasControlChars=true;
      break;
    }
  }
  if (!hasControlChars) {
    return value;
  }
  StringBuilder buf=new StringBuilder(value.length());
  int i=0;
  for (; i < value.length(); i++) {
    if (!Character.isISOControl(value.charAt(i))) {
      break;
    }
  }
  boolean suppressingControlChars=false;
  for (; i < value.length(); i++) {
    if (Character.isISOControl(value.charAt(i))) {
      suppressingControlChars=true;
      continue;
    }
 else {
      if (suppressingControlChars) {
        suppressingControlChars=false;
        buf.append(' ');
      }
      buf.append(value.charAt(i));
    }
  }
  return buf.toString();
}

public static String stripControlCharacters ( String rawValue ) { if ( rawValue == null ) { return null ; } String value = replaceEntities ( rawValue ) ; boolean hasControlChars = false ; for ( int i = value . length ( ) - 1 ; i >= 0 ; i -- ) { if ( Character . isISOControl ( value . charAt ( i ) ) ) { hasControlChars = true ; break ; } } if ( ! hasControlChars ) { return value ; } StringBuilder buf = new StringBuilder ( value . length ( ) ) ; int i = 0 ; for ( ; i < value . length ( ) ; i ++ ) { if ( ! Character . isISOControl ( value . charAt ( i ) ) ) { break ; } } boolean suppressingControlChars = false ; for ( ; i < value . length ( ) ; i ++ ) { if ( Character . isISOControl ( value . charAt ( i ) ) ) { suppressingControlChars = true ; continue ; } else { if ( suppressingControlChars ) { suppressingControlChars = false ; buf . append ( ' ' ) ; } buf . append ( value . charAt ( i ) ) ; } } return buf . toString ( ) ; }
strip a string of it ' s iso control characters .
