バイト変数を文字列に変換したい。もちろん、私に関連する以前の質問があります。ただし、この方法でファイルのコンテンツを md5() でハッシュしようとすると、次のようになります。
import hashlib
with open("C:\\boot.ini","r") as f:
r=f.read()
a=hashlib.md5()
a.update(r.encode('utf8'))
bytes_data=a.digest()
print(bytes_data)
r=type(bytes_data)
print(r) # <-- Just to be sure, it is in bytes
myString=bytes_data.decode(encoding='UTF-8')
このエラーが発生しました:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe3 in position 1: invalid continuation byte
この質問のおかげで問題の理由を理解しましたが、ハッシュを計算するためにさまざまなファイルを扱っているため、バイトを制御できないため、この問題を解決するにはどうすればよいですか?