.NET 4.5 で作ってるアプリケーションにメール送信機能があるんですが、どうも特定の環境で件名が文字化けする現象が発生しました。何故か件名の最後の方の文字だけ化けるという嫌な感じな化け方でした。
ちなみに、日本語の件名なので以下の記事のように ISO-2022-JP と Base64 でエンコードするような処理を書いていました。
SmtpClientで日本語(JIS)が化ける - Neutral Scent
しかし、これでも文字化けしていたので疑問に思っていたのですが、メールのソースを見ると明らかにエンコーディングがおかしくなっているようでしたので、それで検索してみるとこんな情報がありました。
/(^o^)\
.NET 4.5 では内部でエンコードされた件名をデコードして持つように実装が変わったので、2 回エンコードして元の文字列が保持されるようにしないといけないということでした。
2 回エンコードしないといけないとか凄いバカっぽいけど、このように対策したところ文字化けしなくなりました。