Python3 byte到utf-8转换错误怎么办

Python050

Python3 byte到utf-8转换错误怎么办,第1张

python3中 byte类型解码decode会得到str类型 str类型编码encode会得到byte类型 用法示例: s = '知道'b = s.encode('utf-8')print(b)# b'\xe7\x9f\xa5\xe9\x81\x93'print(b.decode('utf-8'))# 知道

以前在 python2 中 a=bytes(bytearray((182,)))结果是 a='\xb6'

现在在 Python3 运行结果是 a=b'\xb6',尝试各种 a.decode()均失败了,请问如何能在 Python3 得到和 Python2 一样的结果呢?

1. Python3 里面的 str 已经是 unicode str 了。

2. bytes(bytearray((182,)))你用的就是 bytes 函数,所以理所当然的,无论 py2 还是 py3 都返回 bytes 类型,只不过 py2 时 bytes==str 而已。

3. 如果你想得到的是 latin_1 编码的\xb6 代表的 str,请用.decode('latin-1')