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

Python IMAP - decoding text with BASE64 encoding and KOI8-R charset

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

结果,我得到了这样的咒语:

ЪьЪЮJFIFHHЪАюExifMM*

bytes 变量的值类似于:

b'/9j/4AAQSkZJRgABAQEASABIAAD/4QTARXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAA...

知道我做错了什么吗?

顺便说一句,我在源代码文件的开头有# -*- coding: utf-8 -*-

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

\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00H\x00H\x00\x00\xff\xe1\x04\xc0Exif...

JFIF 和 Exif 表示 JPEG 图像。