【发布时间】:2021-09-30 18:03:33
【问题描述】:
我正在尝试解码一个 zip 文件,以便从中创建一个 md5 哈希。
当我运行它时
contents = response['Body'].read()
decoded = contents.decode('utf-8')
我收到此错误
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 10: invalid start byte
对我有用的是IBM437
contents.decode('IBM437')
整个哈希流程在 AWS 的 ContentMD5 上传检查中起作用
我不会重新格式化它的上传方式,我只是将其编码为非 utf-8 以创建一个有效的 md5 哈希
在IBM437 中这样做有什么注意事项,因为 utf-8 看起来像是“标准”类型。
【问题讨论】:
-
Zip 文件是二进制数据,它们不能被有意义地解码为文本。为什么不只是散列字节?
-
如果要计算二进制文件的has,只要计算
contents的has,完全不需要强制转换成字符串。
标签: python amazon-s3 character-encoding md5