コード例 #1
0
        public void TestNonBasic()
        {
            uint code;

            Assert.AreEqual(2, Utf16.ToCode(out code, 0xD834, 0xDD1E));
            Assert.AreEqual((uint)0x1D11E, code);
        }
コード例 #2
0
        public void TestLatinCharacter()
        {
            uint code;

            Assert.AreEqual(1, Utf16.ToCode(out code, 0x7A));
            Assert.AreEqual((uint)0x7A, code);

            Assert.AreEqual(1, Utf16.ToCode(out code, 0x7A, 0xABCD), "Trail is ignored");
            Assert.AreEqual((uint)0x7A, code);
        }
コード例 #3
0
        public void TestHighSingleComponent()
        {
            uint code;

            Assert.AreEqual(1, Utf16.ToCode(out code, 0x6C34));
            Assert.AreEqual((uint)0x6C34, code);

            Assert.AreEqual(1, Utf16.ToCode(out code, 0x6C34, 0xABCD), "Trail is ignored");
            Assert.AreEqual((uint)0x6C34, code);
        }
コード例 #4
0
        /// <summary>
        /// Writes plain text content to the output stream.
        /// </summary>
        public void Span(string text)
        {
            if (text == null)
            {
                throw new ArgumentNullException("text");
            }

            int start, end;

            for (start = 0, end = 0; end < text.Length; ++end)
            {
                if (_escapeChars.Contains(text[end]))
                {
                    _writer.Write(text.Substring(start, end - start));

                    // Write control symbol.
                    _writer.Write('\\');
                    _writer.Write(text[end]);
                    start = end = end + 1;
                }
                else if (text[end] > 127)
                {
                    _writer.Write(text.Substring(start, end - start));

                    // Write unicode character.
                    uint code;
                    start = end = end + Utf16.ToCode(out code, text, end);
                    _writer.Write(@"\u{0}?", code);
                }
            }

            if (start < end)
            {
                _writer.Write(text.Substring(start, end - start));
            }
        }