public static String EscapeBinaryString(String s)
{
StringBuilder buf = new StringBuilder();
char[] cc = s.ToCharArray();
int len = cc.Length;
for (int k = 0; k < len; ++k) {
char c = cc[k];
if (c < ' ') {
buf.Append('\\');
int v = (int)c;
string octal = "";
do {
int x = v % 8;
octal = x.ToString() + octal;
v /= 8;
} while (v > 0);
buf.Append(octal.PadLeft(3, '0'));
}
else if (c == '\\')
buf.Append("\\\\");
else
buf.Append(c);
}
return buf.ToString();
}