将 bytes 转换成 str

普通的转换

 # 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)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值