普通的转换
# bytes object
b = b"example"
# str object
s = "example"
# str to bytes
bytes(s, encoding = "utf8")
# bytes to str
str(b, encoding = "utf-8")
# an alternative method
# str to bytes
str.encode(s)
# bytes to str
bytes.decode(b)
当 bytes 里面存的不是字符型的数据,例如图片和音频数据,用上面的方法会有问题,有些字节不能被编码(可能有,但是我没有找到),例如 ascii 码 只能编码0 ~ 128 当 bytes 里面有大于128他就不能编码,会报错。
我想到的方法是把 bytes 的一个字节分成两个字节,例如:0xff 分成 0x0f 和 0x0f。这个方法比较笨,比较浪费空间。
现在用的方法是
import base64
b_data = b'\x05\x01\x90\x7f\x98\x8c\x98+\x8a\x00+\x06\x00+\x95\'
b_data_encode = base64.b64encode(data)
str_data_encode = str(b_data_encode, encoding = 'utf-8')
b_data_encode2 = bytes(str_data_encode, encoding = 'utf-8')
b_data2 = base64.b64decode(data)