X-Apple-Encoding-Hintというフィールド
- Appleのディスカッション・フォーラムで見かけた話(http://discussions.info.apple.co.jp/WebX?128@@.f043554)の追試をしてみた。Mac OS X 10.5 LeopardのMailで返信メッセージを作成し、下書きメールボックスに保存してから再度開くと文字化けしているというもの。
- おそらく再現条件は、受信したメールAと返信メールB(下書きとして保存するメール)でcharsetが違っていること。たとえばShift_JISのメールへの返信がISO-2022-JPであったり、ISO-2022-JPのメールへの返信がCP932であったりすると、下書きメールボックスではメールAのcharsetを想定してメールBをデコードしてしまうために化けるようだ。
- 下書きメールを開かない状態でテキストエンコーディングを「自動」に直せば文字化けは解消するが、下書きメールを開いてから同じ操作をした場合、デコードではなくエンコードの指定になってしまうので、文字化けは直らない。また、一度直したメールを下書きメールボックスに保存すると、再び化けている。
- どうしてメールBが「メールAのcharsetの情報」などを持っているのだろうと思ってヘッダを見ると、X-Apple-Encoding-Hintというフィールドがあやしい。いろいろ試したところ、このフィールドの値は「ISO-2022-JPのメールへの返信」なら「2080」、「Shift_JISのメールへの返信」なら「2561」というようなことになっているようだ(下図)。