|
送っていただいたメールですけど、charset=iso-2022-jpとなっているにも関わら
ず、メール本文はEUC文字コードで書かれています。
Outlook Express、Daula、EdMaxは鶴亀と同じく表示できませんでした。ただし、
Winbiffではなぜか大丈夫でした。
charset=の指定が何もなくて表示しないならバグだと思いますけど、はっきりiso-
2022-jpと記述しているのにEUCで送ってくるようなメールは表示できなくて仕方ない
と思います。
---------------追加
で、このメールのcharset=部分をeuc-jpに書き換えればうまく表示できるかという
と、実はそっちの方がバグってまして、うまく表示できません。
実は、quoted-printableの場合のデコードはEasy Mail Objectsにやらせているん
ですが、このEasy Mail Objectsというのは、いわゆるCOM形式のDLLでして、文字列
は全部unicodeで受け渡しします。そうすると、EUC文字コードの物をShift-JISと見
なしてunicodeに変換するため、Shift-JISとして正しくない文字がうまくunicodeに
変換されずに化けてしまいます。
ってことで、根本的な解決のためにはメール本文を自前でデコードするように修正
しないといけなさそうです。
あー困った。
---------------さらに追加
っと返事を書いて、結局メール本文は自前でデコードするようにしました。ここま
でやってしまうと添付ファイルの取り出しも自前で出来てしまうんですけど、下手に
いじるとまたレベルダウンバグが増えてしまうのでやめときます。っといいつつ、本
文部分についての処理でまたレベルダウンが発生するかも…。
---------------さらにさらに追加
charset=iso-2022-jpとなっていた場合でも、本文中にJISコードの文字が無い場合
にはEUC文字コードかどうか判定して、EUCらしき場合はEUCとして扱うように変更し
ました。
|
|