Remove 'b' character do in front of a string literal in Python 3

我是 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)

OUTPUT:

 print b'my secret data'
231273 次浏览

解码是多余的

你之所以会有这个“错误”,是因为你误解了正在发生的事情。

You get the b because you encoded to utf-8 and now it's a bytes object.

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

解决办法:

  1. 你可以先打印字符串
  2. 编码后重复解码

这应该会奏效:

pw_bytes.decode("utf-8")

给你

f = open('test.txt','rb+')
ch=f.read(1)
ch=str(ch,'utf-8')
print(ch)