private string EncodeString(string s)
{
StringBuilder builder = new StringBuilder(s.Length);
foreach (char c in s) {
if (c == '\0')
builder.Append("\\0");
else if (c == '\r')
builder.Append("\\r");
else if (c == '\n')
builder.Append("\\n");
else if (c == '"')
builder.Append("\\\"");
else if (c == '\\')
builder.Append("\\\\");
else if (c < ' ')
builder.AppendFormat("\\{0}", Convert.ToString((int) c, 8)); // octal format
else
builder.Append(c);
}
return builder.ToString();
}