Python IMAP - 使用BASE64编码和KOI8-R字符集解码文本

时间:2017-08-22 20:08:27

标签: python character-encoding imap

我有一个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 -*-

1 个答案:

答案 0 :(得分:1)

您可能抓错了部分,或者服务器误解了该消息。这可能是JPEG图像。它解码为:

\ XFF \ XD8 \ XFF \ xe0 \ X00 \ x10JFIF \ X00 \ X01 \ X01 \ X01 \ x00H \ x00H \ X00 \ X00 \ XFF \ XE1 \ X04 \ xc0Exif ...

JFIF和Exif表示JPEG图像。

相关问题