mailto URLの中にASCII以外の文字が含まれている場合には、UTF-8のバイト列としてデコードするようにしていたのですが、UTF-8になっていない場合もまだあるようなので、UTF-8として不正なバイト列な場合にはプラットフォームのエンコーディング(日本語Windowsの場合にはWindows-31J)でデコードするようにしてみました。例えば、以下のどちらのURLでも同じように扱われます。
mailto:example@example.org?subject=abc%E3%81%BB%E3%81%92%E3%81%BB%E3%81%92def mailto:example@example.org?subject=abc%82%D9%82%B0%82%D9%82%B0def
EUC-JPでエンコードされていた場合などにはやはり化けますが、少しは救えるようになったのではないかと思います。
本文と関係ない質問で恐縮です。<br><br>POPで部分的にダウンロードしたメールに削除フラグをつけて同期しても、サーバのメールが削除されないのは仕様でしょうか?
そういう風には動作しないと思います。<br><br>削除フラグをつけて同期してサーバ上のメッセージが削除されないのは、<br>- X-UIDLが付いていない<br>- Identityが異なる<br>場合などのようです。