コード例 #1
0
        public void Utf8BytesUFFFF()
        {
            var expected = new char[] { (char)0x800, (char)0xd7ff, (char)0xffff };

            Utf16Utility.GetUtf8Bytes(new string(expected), out var bytes, out var count);
            var actual = Encoding.UTF8.GetString(bytes, 0, count).ToCharArray();

            Assert.Equal(expected.Select(x => (int)x), actual.Select(x => (int)x));
        }
コード例 #2
0
        public void Utf8BytesU7FAllocated()
        {
            var expected = Enumerable.Range(0, 10).Select(x => (char)(x + 1)).ToArray();
            var buf      = new byte[expected.Length];

            Utf16Utility.GetUtf8Bytes(new string(expected), buf, 0, out var count);
            var actual = Encoding.UTF8.GetString(buf, 0, count).ToCharArray();

            Assert.Equal(expected.Select(x => (int)x), actual.Select(x => (int)x));
        }
コード例 #3
0
        public void GetUtf8BytesPreallocated()
        {
            var str    = new string(Enumerable.Range(0, Length).Select(x => (char)CharacterCode).ToArray());
            var buffer = new byte[str.Length * 3];

            for (int i = 0; i < LoopNum; i++)
            {
                Utf16Utility.GetUtf8Bytes(str, buffer, 0, out var count);
            }
        }