普通的转换
# 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)
博客探讨了在Python中处理字节(bytes)和字符串(str)对象之间的转换问题,包括基本的转换方法以及遇到非字符数据如图片和音频时的挑战。作者提到了当字节包含无法用ASCII编码的数据时,可以使用base64编码进行转换以避免错误。通过base64编码,可以将字节数据转换为可打印的字符串,并在需要时解码回原始字节。
175

被折叠的 条评论
为什么被折叠?



