从imaplib获取正确解码的邮箱名称

问题描述

我目前正在像这样从imaplib.IMAP4_SSL conn连接中获取邮箱名称:

mbs = [e.decode(encoding) for e in conn.list()[1] if isinstance(e,bytes)]

(在Ubuntu 18.4上为Python 3.8,连接到imap.gmx.com,顺便说一句)

但是无论我始终使用哪种编码 ,它们都会得到相同的错误解码字符串:['Entw&APw-rfe','Gel&APY-scht',...]

我尝试了所有已知的编码:

{'gb18030','hz','quopri_codec','cp861','hp_roman8','cp424','cp869','kz1048','ascii','cp273','zlib_codec','cp1125','cp1257','latin_1','iso8859_9','mbcs','cp852','utf_16_le','shift_jis','iso2022_jp_1','cp857','euc_jisx0213','mac_greek','big5hkscs','utf_7','koi8_r','big5','cp1255','mac_iceland','tactis','mac_turkish','base64_codec','cp1026','iso8859_5','cp858','shift_jisx0213','iso8859_7','mac_roman','utf_32_be','gbk','gb2312','cp866','cp1251','cp437','iso2022_jp_2','bz2_codec','euc_jis_2004','mac_cyrillic','cp865','iso2022_jp_ext','utf_16_be','iso8859_14','cp037','iso8859_2','iso2022_kr','cp950','cp860','hex_codec','cp850','iso8859_15','tis_620','cp855','rot_13','cp1253','iso8859_4','cp1254','shift_jis_2004','iso8859_3','iso8859_11','iso8859_13','cp1252','iso2022_jp','cp932','iso2022_jp_3','utf_8','euc_kr','cp1140','cp500','utf_16','utf_32','cp949','mac_latin2','johab','cp1250','ptcp154','uu_codec','iso8859_16','cp862','cp864','iso8859_6','cp775','cp1258','utf_32_le','euc_jp','iso8859_10','iso8859_8','cp1256','cp863','iso2022_jp_2004'}

在我看来,名称似乎被错误地解码,然后在到达我的途中被重新编码为UTF-8

我在做什么错了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...