EscapeText() static private method

Like EscapeBytes but escapes a text string. The string is first encoded as UTF-8, then each byte escaped individually. The returned value is guaranteed to be entirely ASCII.
static private EscapeText ( string input ) : string
input string
return string
        public void Escape()
        {
            // Escape sequences.
            Assert.AreEqual("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"",
                            TextFormat.EscapeBytes(Bytes("\0\u0001\u0007\b\f\n\r\t\v\\\'\"")));
            Assert.AreEqual("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"",
                            TextFormat.EscapeText("\0\u0001\u0007\b\f\n\r\t\v\\\'\""));
            Assert.AreEqual(Bytes("\0\u0001\u0007\b\f\n\r\t\v\\\'\""),
                            TextFormat.UnescapeBytes("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\""));
            Assert.AreEqual("\0\u0001\u0007\b\f\n\r\t\v\\\'\"",
                            TextFormat.UnescapeText("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\""));

            // Unicode handling.
            Assert.AreEqual("\\341\\210\\264", TextFormat.EscapeText("\u1234"));
            Assert.AreEqual("\\341\\210\\264", TextFormat.EscapeBytes(Bytes(0xe1, 0x88, 0xb4)));
            Assert.AreEqual("\u1234", TextFormat.UnescapeText("\\341\\210\\264"));
            Assert.AreEqual(Bytes(0xe1, 0x88, 0xb4), TextFormat.UnescapeBytes("\\341\\210\\264"));
            Assert.AreEqual("\u1234", TextFormat.UnescapeText("\\xe1\\x88\\xb4"));
            Assert.AreEqual(Bytes(0xe1, 0x88, 0xb4), TextFormat.UnescapeBytes("\\xe1\\x88\\xb4"));

            // Errors.
            AssertFormatException(() => TextFormat.UnescapeText("\\x"));
            AssertFormatException(() => TextFormat.UnescapeText("\\z"));
            AssertFormatException(() => TextFormat.UnescapeText("\\"));
        }
        public void WriteArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list)
        {
            output.WriteLine("{0}: [", fieldName);
            output.Indent();

            int objcount = 0;

            foreach (object element in list)
            {
                if (objcount != 0)
                {
                    output.Write(" ");
                }

                switch (fieldType)
                {
                case FieldType.String:
                    output.WriteLine("\"{0}\"", TextFormat.EscapeText((string)element));
                    break;

                case FieldType.Bytes:
                    output.WriteLine("\"{0}\"", TextFormat.EscapeBytes((ByteString)element));
                    break;

                case FieldType.Message:
                    output.WriteLine("{");
                    output.Indent();
                    ((IMessageLite)element).WriteTo(this);
                    output.Outdent();
                    output.WriteLine("}");
                    break;

                case FieldType.Group:
                    output.WriteLine("{");
                    output.Indent();
                    ((IMessageLite)element).WriteTo(this);
                    output.Outdent();
                    output.WriteLine("}");
                    break;

                default:
                    output.Write("{0}", element);
                    if (++objcount > 10)
                    {
                        objcount = 0;
                        output.WriteLine("");
                    }
                    break;
                }
            }
            if (objcount != 0)
            {
                output.WriteLine("");
            }
            output.Outdent();
            output.WriteLine("]");
        }
 /// <summary>
 /// Writes a string field value, including tag, to the stream.
 /// </summary>
 public void WriteString(int fieldNumber, string fieldName, string value)
 {
     output.WriteLine("{0}: \"{1}\"", fieldName, TextFormat.EscapeText(value));
 }