は私の問題です...PythonのUnicodeのアスキー、序ない範囲で、イライラエラーここ
データベースは、Unicodeのすべてを格納します。 hashlib.sha256()。digest()はstrを受け取り、strを返します。
私はデータをハッシュ関数を詰め込むしようとすると、私は有名なエラーを取得する:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 1: ordinal not in range(128)
これは、だから私が求めていますがすべてオンにする方法である私のデータ
>>> db_digest
u"'\x90\x017~1\xe0\xaf4\xf2\xec\xd5]:j\xef\xe6\x80\x88\x89\xfe\xf7\x99,c\xff\xb7\x06hXR\x99\xad\x91\x93lM:\xafT\xc9j\xec\xc3\xb7\xea[\x80\xe0e\xd6\\\xd8\x16'\xcb6\xc8\xaa\xdf\xc9 :\xff"
>>>
>>> hashlib.sha256(db_digest)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode character u'\x90' in position 1: ordinal not in range(128)
>>>
>>> asc_db_digest
"'\x90\x017~1\xe0\xaf4\xf2\xec\xd5]:j\xef\xe6\x80\x88\x89\xfe\xf7\x99,c\xff\xb7\x06hXR\x99\xad\x91\x93lM:\xafT\xc9j\xec\xc3\xb7\xea[\x80\xe0e\xd6\\\xd8\x16'\xcb6\xc8\xaa\xdf\xc9 :\xff"
>>> hashlib.sha256(asc_db_digest)
<sha256 HASH object @ 0x7f7da0f04300>
ですasc_db_digestにdb_digest
編集 私がtehのを認識していないようだと私は質問を言い換えています問題は最初の場所で正しく。
知っていいだろう*なぜ* hexまたはbase64はオプションではないので、これが最善の方法です。 P.S.私の答えの2番目の部分を見ましたか? –
@ MarkRansom私は質問を完全に言い直しました。内部を参照してください。 –