这可能是一个愚蠢的问题,但是……它来了!
我用本机 C++ 编写了自己的 MIME 解析器。这是编码的噩梦!过去 3 个月左右它很稳定,但最近我注意到了这一点Subject: header
。
Subject: =?UTF-8?B?T2ZpY2luYSBkZSBJbmZvcm1hY2nDs24sIEluaWNpYXRpdmFzIHkgUmVjbGFt?===?UTF-8?B?YWNpb25lcw==?=
这应该解码为:
Subject: Oficina de Información, Iniciativas y Reclamaciones
问题是那里有一个额外= (equal)
的东西,我无法弄清楚我不明白为什么要分开的两个(为什么是 2 个?)编码元素的绑定。理论上格式应该是:=?charset?encoding?encoded_string?=
但是发现另一个以两个开头的主题=
。
==?UTF-8?B?blahblahlblah?=
我应该如何处理额外的=
?
我可以在做任何事情之前替换==?
为=?
(我是)(并且它有效) ......但我想知道是否有任何关于此的规范,所以我不会破解我的方式来获得正确的功能。
PS:我多么讨厌这些遗物协议!所有文本通信都应该是 UTF-8 和 XML :)