Ian*_*erg 10 c# unicode byte ascii winforms
我有一个30字节的数组的字节,但当我使用BitConverter.ToString它显示十六进制字符串.字节是
0x42007200650061006B0069006E00670041007700650073006F006D0065.这也是Unicode.
这意味着BreakingAwesome,但我不知道如何让它从十六进制转换为Unicode转换为ASCII.
Ode*_*ded 18
您可以使用其中一个Encoding类 - 您需要知道这些字节的编码方式.
string val = Encoding.UTF8.GetString(myByteArray);
Run Code Online (Sandbox Code Playgroud)
您显示的值看起来像Unicode编码,所以UTF8或Unicode看起来像是好的赌注.
看起来那是小端 UTF-16,所以你想要Encoding.Unicode:
string text = Encoding.Unicode.GetString(bytes);
Run Code Online (Sandbox Code Playgroud)
您通常不应该假设编码是什么 - 它应该是您对数据的了解。对于其他编码,您显然会使用不同的Encoding实例,但它Encoding是用于文本二进制表示的正确类。
编辑:如评论中所述,您似乎从字节数组的开头(在这种情况下需要Encoding.BigEndianUnicode)或结尾(在这种情况下Encoding.Unicode很好)缺少“00” 。
(然而,反过来说,取任意二进制数据并将其表示为文本,您应该使用十六进制或 base64。这里不是这种情况,但您应该意识到这一点。)
| 归档时间: |
|
| 查看次数: |
23988 次 |
| 最近记录: |