首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将压缩字节(高阶字节删除)转换为Unicode字符串?

如何将压缩字节(高阶字节删除)转换为Unicode字符串?
EN

Stack Overflow用户
提问于 2017-12-23 06:36:08
回答 2查看 60关注 0票数 0

我有一个字符串表示为一个字节数组,我知道该数组已经删除了0x00的高阶字节,因此该字符串被压缩为:

代码语言:javascript
运行
复制
0x43 0x6F 0x6D 0x6D 0x61 0x6E 0x64 //"Command"

如何将字节转换为Unicode字符串?

我猜我需要将字节复制到一个新数组(uncompressedBytes)中,这个数组的大小是原来的两倍,每隔一秒钟:

代码语言:javascript
运行
复制
byte[] compressedBytes = br.ReadBytes(stringLength);
byte[] uncompressedBytes = new byte[stringLength * 2];
for (int byteCounter = 0; byteCounter < stringLength; byteCounter++)
{
    uncompressedBytes[byteCounter * 2] = compressedBytes[byteCounter];
}
return Encoding.Unicode.GetString(uncompressedBytes);

或者,是否有编码可以将所有字节视为丢失其高阶字节的Unicode字符?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-23 07:50:24

前256个代码点与ISO-8859-1的内容相同,从而使转换现有的西方文本变得琐碎。

https://en.m.wikipedia.org/wiki/Unicode

代码语言:javascript
运行
复制
Encoding.GetEncoding("ISO-8859-1").GetString(bytes)
票数 3
EN

Stack Overflow用户

发布于 2017-12-23 06:48:31

如果您知道所有字节都是0x7f或更少,则可以将它们视为utf-8并使用System.Text.UTF8Encoding转换器类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47950368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档