1.通过encode和decode来完成str和bytes之间的转换。
这里就不解释了,网上已经很多作者做个解释了。这种方式要求,bytes类型是str通过encode()方法得到的,才能使用decode()方法还原。
2.本文主要讲,bytes强转为str后怎么还原为bytes。
有时候,有一个bytes类型的数据,如下
old = b'xx9cMx97mx8e%xb9nDxb7xd2x0bxe8Ix81xf90xace4?'
我们将它强转为了str,比如
message = str(old)
这样一个bytes串变为了一个str字符串,那么如何转换为bytes了,就不能用前面的encode,decode方法了。这时需要这样做
# 这里需要先对str字符串进行处理,将开头的“b'”和结尾的“'”给删掉,这里用切片进行处理,然后强转为bytes new = bytes(old[2:-1], encoding="utf-8") # 上面虽然强转为了bytes但是还是不够,读者可直接输出试一试 # 还需要进一步处理,如下 import codecs original = codecs.escape_decode(new, "hex-escape")[0] print(original) # 接着就可以对该bytes进行解压操作了 import zlib prob = zlib.decompress(original) print(prob)



