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)); }
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)); }
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); } }