rpmdeb 2019-10-10 15:46 采纳率: 0%
浏览 337
已采纳

python3字节 转字符串 再转回字节,怎么不一样了?


import gzip

s1 = gzip.compress('Hello, world'.encode())
print ("s1类型",type(s1))
print ("s1是 ",s1)

s2=str(s1,encoding='utf-8')

print ("s2类型",type(s2))
print ("s2是 ",s2)

s3=bytes(s2,encoding='utf8')

print("s3的类型",type(s3))
print ("s3是 ",s3)

输出的结果是:

s1类型 <class 'bytes'>
s1是  b'\x1f\x8b\x08\x00\x1d\xe1\x9e]\x02\xff\xf3H\xcd\xc9\xc9\xd7Q(\xcf/\xcaI\x01\x00\xc2\xa9\x9a\xe7\x0c\x00\x00\x00'
s2类型 <class 'str'>
s2是  b'\x1f\x8b\x08\x00\x1d\xe1\x9e]\x02\xff\xf3H\xcd\xc9\xc9\xd7Q(\xcf/\xcaI\x01\x00\xc2\xa9\x9a\xe7\x0c\x00\x00\x00'
s3的类型 <class 'bytes'>
s3是  b"b'\\x1f\\x8b\\x08\\x00\\x1d\\xe1\\x9e]\\x02\\xff\\xf3H\\xcd\\xc9\\xc9\\xd7Q(\\xcf/\\xcaI\\x01\\x00\\xc2\\xa9\\x9a\\xe7\\x0c\\x00\\x00\\x00'"

问题是:为什么s1与s3不一样了,怎么才能通过s2 ,把s3转成和s1一样的了,然后还原到 最初的hello world ?

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-10-10 16:14
    关注

    s1 = gzip.compress('Hello, world'.encode())
    这是压缩的编码
    s3=bytes(s2,encoding='utf8')
    这个没有压缩

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!