将字节[]转换为UTF8字符串
问题描述:
我将“1”“0”“0”“0”的btye数组转换为字符串。将字节[]转换为UTF8字符串
Encoding.UTF8.Getstring(myByteArray,0,4);
,其结果是"\0\0\0"
我所期待的结果是 “1”。我做错了什么?
答
UTF8
编码字符1
映射到等于31(十六进制)的字节49(十进制),请参阅UTF8 table。
但你有一些其他的数据,不知道为什么你期望“1”作为结果。如果你期望“1”的结果是你的字节数组应该包含单个字节值49
。
var result = Encoding.UTF8.GetString(new byte[] { 49 });//result is 1
我相信你的数据不是UTF-8编码的字节,这是别的东西(可能是一些其他的编码!)。
您不能只使用UTF8
将任意字节转换为字符串。为此,必须首先将字节编码为UTF8
。因此,找到数据的编码方式,然后您可以使用适当的编码来反转它。
好的。我有一些数据是UTF8,有些只是数字。我看到这些数字不是UTF8编码的。但我只是循环与foreach,所以我看不出哪一个是哪个。可能有编码这两种可能的方法。 – 2014-11-03 11:27:50