Python: gb2312 编解码器无法解码字节

Python: gb2312 codec can't decode bytes

我收到的邮件中有一个字编码的字符串。解析 Python3 中的编码字时,出现异常

'gb2312' codec can't decode bytes in position 18-19: illegal multibyte sequence

make_header 方法提出。

from email.header import decode_header, make_header

hdr = decode_header("""=?gb2312?B?QSBWIM34IMXMILP2IMrbICAgqEMgs8kgyMsg?=""")
make_header(hdr)

在在线工具中解析编码字符串没有问题 (http://dogmamix.com/MimeHeadersDecoder/)。 有什么建议我做错了吗?谢谢

错误消息告诉您位置 18-19 中的字节 对于此编码无效。

decode_header 简单地提取了一堆字节和一个编码。 make_header 实际上尝试解释该编码中的那些字节,但失败了,因为这些字节在该编码中无效。

同样,

bash$ base64 -D <<<'QSBWIM34IMXMILP2IMrbICAgqEMgs8kgyMsg' |
> iconv -f gb2312 -t utf-8
A V 网 盘 出 售   
iconv: (stdin):1:18: cannot convert

因此错误消息只是告诉您此数据无效。如果没有更多信息,我们无法判断数据应该是什么,Python 或您的程序也不能做到这一点。

对于一个粗略的寓言,您可以在此处 g??ss 哪些 b?t?s m?ss?ng,但在 ?h??长? s???e???.