+ foreach (var c in s){
+ if (c >= 32){
+ output.Write (c);
+ continue;
+ }
+ switch (c){
+ case '\"':
+ output.Write ("\\\""); break;
+ case '\a':
+ output.Write ("\\a"); break;
+ case '\b':
+ output.Write ("\\b"); break;
+ case '\n':
+ output.Write ("\n");
+ break;
+
+ case '\v':
+ output.Write ("\\v");
+ break;
+
+ case '\r':
+ output.Write ("\\r");
+ break;
+
+ case '\f':
+ output.Write ("\\f");
+ break;
+
+ case '\t':
+ output.Write ("\\t");
+ break;
+
+ default:
+ output.Write ("\\x{0:x}", (int) c);
+ break;
+ }
+ }