在 Python 3 中删除字符串文字前面的 'b' 字符

新手上路,请多包涵

我是 python 编程的新手,我有点困惑。我尝试从字符串中获取字节以进行散列和加密,但我得到了

b'...'

字符串前面的 b 字符就像下面的例子一样。有什么办法可以避免这种情况吗?任何人都可以提供解决方案吗?抱歉这个愚蠢的问题

import hashlib

text = "my secret data"
pw_bytes = text.encode('utf-8')
print('print',pw_bytes)
m = hashlib.md5()
m.update(pw_bytes)

输出:

  print b'my secret data'

原文由 Panagiotis Drakatos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 496
2 个回答

解码是多余的

由于对正在发生的事情的误解,您首先只有这个“错误”。

你得到 b 因为你编码为 utf-8 现在它是一个字节对象。

  >> type("text".encode("utf-8"))
 >> <class 'bytes'>

修复:

  1. 您可以先打印字符串
  2. 编码后冗余解码

原文由 Pythonista 发布,翻译遵循 CC BY-SA 4.0 许可协议

这应该可以解决问题:

 pw_bytes.decode("utf-8")

原文由 krock 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题