これはばかげた質問かもしれませんが...ここに行きます!
ネイティブ 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 でなければなりません :)