gpt4 book ai didi

python - Unicode解码错误: 'utf-8' codec can't decode byte 0xe3 in position 1: invalid continuation byte

转载 作者:太空狗 更新时间:2023-10-30 00:50:05 25 4
gpt4 key购买 nike

我想将字节变量转换为字符串。当然,还有之前的问题和我的相关。但是,尝试以这种方式在 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

多亏了这个question,我明白了我的问题的原因,但是我正在处理不同的文件来计算它们的哈希值,所以我无法控制字节,那么我该如何解决这个问题?

最佳答案

hash.digest()返回值不是 UTF-8 编码的字符串。不要试图解码它;它是 0-255 范围内的字节序列,这些字节代表文本。

不是所有的bytes内容都编码文本;这就是一个这样的值(value)。

使用hash.hexdigest()如果你想要一些可打印的东西。此方法返回以十六进制数字表示的字节(每个摘要字节两个十六进制字符)。这是与他人共享 MD5 摘要时常用的形式。

关于python - Unicode解码错误: 'utf-8' codec can't decode byte 0xe3 in position 1: invalid continuation byte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24911071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com