将byte []转换为UTF8的字符串

时间:2014-11-03 10:57:45

标签: c# character-encoding

我正在转换" 1"的btye数组。 " 0" " 0" " 0"字符串。

Encoding.UTF8.Getstring(myByteArray,0,4);,结果为"\0\0\0"

我期待的结果是" 1"。我做错了什么?

1 个答案:

答案 0 :(得分:2)

UTF8编码字符1中映射到字节49(十进制),等于31(十六进制),请参考UTF8 table

但你还有其他一些数据,不确定你为什么期望" 1"作为结果。如果有的话,你期待" 1"结果,您的字节数组应包含单字节值49

var result = Encoding.UTF8.GetString(new byte[] { 49 });//result is 1

我相信你拥有的数据不是UTF-8编码的字节,而是其他东西(可能是其他编码!)。

您不能使用UTF8将任意字节转换为字符串。为此,必须首先使用UTF8对字节进行编码。因此,找到数据的编码,然后您可以使用适当的编码来反转它。