これはばかげた質問かもしれませんが...ここに行きます!
ネイティブ C++ で独自の MIME パーサーを作成しました。エンコーディングの悪夢です!3ヶ月ほど安定していましたが、最近気付きましたSubject: header。
Subject: =?UTF-8?B?T2ZpY2luYSBkZSBJbmZvcm1hY2nDs24sIEluaWNpYXRpdmFzIHkgUmVjbGFt?===?UTF-8?B?YWNpb25lcw==?=
これにデコードする必要があります:
Subject: Oficina de Información, Iniciativas y Reclamaciones
問題は= (equal)、そこに 1 つの余分なものがあり、2 つの(なぜ 2 なのか?)エンコードされた要素が分離されている理由がわかりません。理論的には、形式は : のはずです=?charset?encoding?encoded_string?=が、 two で始まる別の件名が見つかりました=。
==?UTF-8?B?blahblahlblah?=
余分なものはどのように処理すればよい=ですか?
何かをする前に==?(=? 私は)置き換えることができます(そしてそれは機能します) ...しかし、これに関する何らかの仕様があるかどうか疑問に思っているので、適切な機能にハックしません。
PS :これらの遺物プロトコルがどれだけ嫌いか! すべてのテキスト通信は UTF-8 と XML でなければなりません :)