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

2024-06-16 10:01:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到的邮件中有一个字编码的字符串。在分析Python3中的编码字时,我遇到了一个异常

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

生成头方法引发。在

from email.header import decode_header, make_header

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

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


Tags: 字符串in编码makebyteshdr邮件position
1条回答
网友
1楼 · 发布于 2024-06-16 10:01:14

错误消息告诉您,位置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或您的程序也无法做到这一点。在

对于一个粗略的比喻,你可以??哪个b?是吗?s是m?党卫军?在这里,但不在?h??我呢?不合格??s???e???。在

相关问题 更多 >