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')
    这个没有压缩

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

报告相同问题?

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码