将字节[]转换为UTF8字符串

本文关键字:UTF8 字符串 转换 字节 | 更新日期: 2023-09-27 18:28:49

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

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

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

将字节[]转换为UTF8字符串

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

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

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

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

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