UnicodeDecodeError:"utf-8"编解码器无法解码位置 0 中的字节0x9d:当我执行" b.decode()"时起始字节无效



我有一个像bellow这样的代码:

cn_bytes = [157, 188, 156]
cn_str = ""
clen = len(cn_bytes)
count = int(clen / 3)
for x in range(count):
    i = x * 3
    b = bytes([cn_bytes[i], cn_bytes[i + 1], cn_bytes[i + 2]])
    print(b)
    cn_str += b.decode()

当我执行它时,我会遇到波纹管错误:

Traceback (most recent call last):
  File "/Users/dele/Desktop/TestIOS/TestPython/testDemo01/testDemo01/test08.py", line 30, in <module>
    cn_str += b.decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9d in position 0: invalid start byte

那里说:

unicodedecodeerror:'utf-8'编解码器无法在位置0中解码字节0x9d:无效启动字节

实际上我认为您不能使用bytes()将整个列表转换为字节。但是您仍然可以通过单个元素迭代将其转换为字节。

b = [cn_bytes[i], cn_bytes[i + 1], cn_bytes[i + 2]]
cn_str =  [bytes(i)for i in b]

相关内容

最新更新