我有一个IMAP电子邮件部分,如下所示:
(b'TEXT', b'HTML', (b'CHARSET', b'KOI8-R'), None, None, b'BASE64', 3304, 42, None, None, None)
我正在使用IMAPClient来解析电子邮件,而我在尝试将电子邮件正文解码为人类可读字符方面遇到了麻烦。我的代码如下所示:
bytes = imap_server.fetch(msgid, "BODY['1']")[msgid][b'BODY[1]']
rs = base64.b64decode(bytes)
rs = rs.decode('KOI8-R')
结果,我得到了这样的abracadabra:
ЪьЪЮJFIFHHЪАюExifMM*
bytes
变量的值类似于:
b'/9j/4AAQSkZJRgABAQEASABIAAD/4QTARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAA...
任何想法我做错了什么?
顺便说一句,我在源代码文件的开头有# -*- coding: utf-8 -*-
。
答案 0 :(得分:1)
您可能抓错了部分,或者服务器误解了该消息。这可能是JPEG图像。它解码为:
\ XFF \ XD8 \ XFF \ xe0 \ X00 \ x10JFIF \ X00 \ X01 \ X01 \ X01 \ x00H \ x00H \ X00 \ X00 \ XFF \ XE1 \ X04 \ xc0Exif ...
JFIF和Exif表示JPEG图像。