我有一个像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]