22
pwdinput = input("Now enter a password:")
pwd = hashlib.sha1()
pwd.update(pwdinput)
pwd = pwd.hexdigest()
は、どのように私はそのエラーを乗り越えることができますか? Unicodeオブジェクトをどのようにエンコードしますか?
pwdinput = input("Now enter a password:")
pwd = hashlib.sha1()
pwd.update(pwdinput)
pwd = pwd.hexdigest()
は、どのように私はそのエラーを乗り越えることができますか? Unicodeオブジェクトをどのようにエンコードしますか?
pwdinput = input("Now enter a password:").encode('utf-8') # or whatever encoding you wish to use
あなたは、Python 3使用していると仮定すると、これはbytes
UTF-8でエンコードされたオブジェクト、または任意のエンコーディング使用したいにinput()
によって返されたUnicode文字列を変換します。 Python 3はUnicode文字列(str
)と表現できないかもしれないバイトの不変なシーケンスの間に明白な違いがありますが、以前のバージョンのPythonでも同様ですが、Unicode文字列と非Unicode文字列の処理はちょっと面倒でした。 ASCII文字(bytes
)。
http://docs.python.org/library/stdtypes.html#str.encode
http://docs.python.org/py3k/library/stdtypes.html#str.encode
ありがとうございました!それは完璧に働いた!私はそれがより早く実現したと思う。しかし、ありがとう。 – Nate
あなたは大歓迎です。 – JAB
私はPython 2.xのユニコード処理の大ファンではありませんが、この特定のコードはPython 2.7でもうまく機能します。なぜなら、 'str'と' unicode'型の両方にencodeメソッドがあり、文字列ASCII文字のみで構成されている場合、文字列のutf-8エンコーディングは、それらの文字のバイト文字列とまったく同じです。 「abc」と「abc」のハッシュを同じにしたい場合は、そのことが重要です。違う扱いを受けている人は大丈夫ですが、エンコーディングは問題ありません。 – GrandOpener