web-dev-qa-db-ja.com

Python 3の文字列リテラルの前にある 'b'文字を削除します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)

出力:

 print b'my secret data'
46

デコードは冗長です

何が起こっているのか誤解しているため、そもそもこの「エラー」しかありませんでした。

utf-8にエンコードしたため、bを取得し、現在はバイトオブジェクトになっています。

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

修正:

  1. 最初に文字列を印刷するだけです
  2. エンコード後に冗長にデコードする
19
Pythonista

これでうまくいくはずです:

pw_bytes.decode("utf-8")
111
krock

ここに行く

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