c# – UTF8 byte []到字符串转换

前端之家收集整理的这篇文章主要介绍了c# – UTF8 byte []到字符串转换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有无限大小的UTF8字节[](即非常大的大小).我想将其截断为1024字节,然后将其转换为字符串.

Encoding.UTF8.GetString(byte [],int,int)为我做了这个.它首先缩短1024个字节然后给我转换后的字符串.

但是在这个转换中,如果最后一个字符是UTF8字符集,它由2个字节组成,并且其第一个字节落在范围内而另一个字节超出范围则显示?转换后的字符串中的那个字符.

这有什么办法吗?不是用转换后的字符串?

解决方法

这就是Decoder类的用途.它允许您将字节数据流式传输到char数据,同时保持足够的状态以正确处理部分代码点:
Encoding.UTF8.GetDecoder().GetChars(buffer,1024,charBuffer,0)

当然,当代码点在中间分割时,Decoder在其状态下留下“部分字符”,但这与您的情况无关(并且在所有其他用例中都是可取的:) ).

原文链接:/csharp/244951.html

猜你在找的C#相关文章