繁体   English   中英

UTF8 byte []到字符串转换

[英]UTF8 byte[] to string conversion

我有UTF8 byte[]无限大小(即非常大的大小)。 我想将其截断为1024字节,然后将其转换为字符串。

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

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

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

这就是Decoder类的用途。 它允许您将byte数据流式传输到char数据,同时保持足够的状态以正确处理部分代码点:

Encoding.UTF8.GetDecoder().GetChars(buffer, 0, 1024, charBuffer, 0)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM