public static String EscapeNonPrintables(String s)
{
byte[] data = ASCIIEncoding.ASCII.GetBytes(s);
for (int i = 0; i < data.Length; i++)
{
// All printables except CR anf LF
if (!(data[i] == 13 || data[i] == 10 || data[i] == 9) && (data[i] < 32 || data[i] > 126))
{
data[i] = Convert.ToByte('.');
}
}
return ASCIIEncoding.ASCII.GetString(data);
}