weixin_44144932
rpmdeb
2019-10-10 15:46
采纳率: 18.2%
浏览 281

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条回答 默认 最新

  • caozhy
    已采纳

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

    点赞 评论

相关推荐