加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:48:39 所属栏目:百科 来源:网络整理
导读:我有无限大小的UTF8字节[](即非常大的大小).我想将其截断为1024字节,然后将其转换为字符串. Encoding.UTF8.GetString(byte [],int,int)为我做了这个.它首先缩短1024个字节然后给我转换后的字符串. 但是在这个转换中,如果最后一个字符是UTF8字符集,它由2个字
我有无限大小的UTF8字节[](即非常大的大小).我想将其截断为1024字节,然后将其转换为字符串.

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

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

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

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读