Exemplo n.º 1
0
        public void UnicodeEscapeTest()
        {
            // UTF-8 Encoding:	0xE8 0xA1 0xA8
            // UTF-16 Encoding:	0x8868
            // UTF-32 Encoding:	0x00008868

            {
                var src     = "\"\\u8868\\u60c5\"";
                var json    = src.ParseAsJson();
                var decoded = json.GetString();
                Assert.AreEqual("表情", decoded);
            }

            {
                Assert.AreEqual("表"[0], (char)0x8868);
            }

            {
                var src = Utf8String.From("表");
                var dst = src.Bytes.ToArray();
                Assert.AreEqual(0xE8, dst[0]);
                Assert.AreEqual(0xA1, dst[1]);
                Assert.AreEqual(0xA8, dst[2]);
            }

            {
                var src = Utf8String.From("\\u8868");
                var ms  = new MemoryStream();
                JsonString.Unescape(src, new StreamStore(ms));
                var dst = ms.ToArray();
                Assert.AreEqual(0xE8, dst[0]);
                Assert.AreEqual(0xA1, dst[1]);
                Assert.AreEqual(0xA8, dst[2]);
            }
        }
Exemplo n.º 2
0
 public void StringEscapeTest()
 {
     {
         var value   = "\"";
         var escaped = "\\\"";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
     {
         var value   = "\\";
         var escaped = "\\\\";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
     {
         var value   = "/";
         var escaped = "\\/";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
     {
         var value   = "\b";
         var escaped = "\\b";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
     {
         var value   = "\f";
         var escaped = "\\f";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
     {
         var value   = "\n";
         var escaped = "\\n";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
     {
         var value   = "\r";
         var escaped = "\\r";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
     {
         var value   = "\t";
         var escaped = "\\t";
         Assert.AreEqual(escaped, JsonString.Escape(value));
         Assert.AreEqual(value, JsonString.Unescape(escaped));
     }
 }