メールの文字が化ける、という話について。
僕がこれに気付いたのは1年くらい前のことなんですが、WordPress でサイト構築したお客さんから「コメント通知メールの文字が化ける」という連絡をもらいました。
当時の WordPress ではメール送信の扱いが簡素にできていて、日本語メールの文字化けはよく起きていたので、僕は文字化けを解消するためのプラグインを作ったりしていろいろと独自の工夫を加えていました。もちろんそのお客さんのところにもプラグインを仕込んでいて、それでも化けるというので俄然、調査に乗り出したのですが、どう化けるのか聞いたところどうもそれまで経験したケースとは違います。
メールの件名がこんなふうに表示されるらしいんです。
Subject: =?UTF-8?B?44OG44K544OI?=
これは UTF-8 の文字列を Base64 でエンコードしたものです。メールサーバからはこのフォーマットで送信されます。これを、本来であればメールを読むのに使っている MUA が下のようにデコードして表示してくれるはず、
Subject: テスト
なんですが、このケースではデコードされずにそのまま表示されてしまったらしい。
お客さんに使っているメールソフトをたずねたところ、バージョンは忘れましたがそう新しくもない Outlook Express ということでした。
比較のため、Thunderbird を入れて試してもらったところ、正しく表示されるようになりました。
メールソフトが問題だったんだね、ということでかえってそのお客さんには喜ばれ、また当時の僕は「PC ゲームを除いて MS 製品はうんこ」という基本認識で生きている普通の一般人だったので(*1)、まあ古い Outlook Express なんてそんなもんだろ、とあまり深くも考えず、そうして最近になるまで忘れていました。
で、今になってこのことを思い出したのは、件の WordPress プラグインを使ってくれたほかのユーザの方から上に書いたのと同様の報告を受けたからで、また、その方によると Outlook 2003 をお使いとのこと。2003 ってけっこう最近ですよね。それでちょっと疑問に思ったわけですよ。
- バージョンに関係なく Outlook は UTF-8 の Base64 をデコードできない? そういう仕様なのか?
- いまどき UTF-8 のヘッダが正しく表示できないというのは大きな問題なんじゃないのか?
- 「Outlook Base64 UTF-8」とかでぐぐってみてもたいして出てこないが、困っている人は多くないのか?
- ひょっとしてヘッダのエンコードのほうが間違ってたりする?
どうなんですかね。Outlook って使っている人ものすごく多いと思うんで、問題があったら話題になってても良さそうなもんですが。なにか知ってる人がいたら教えてもらえるとたすかります。
それと、こういう話をするとかならず「メールには JIS コードを使うのが常識です」ってなことをいわれたものなんだけど、それって今でもそうなの? 本当に21世紀のいまになっても多言語混在できないような文字コードを使い続けないといけない理由があるんだろうか。だれか本当のことを知ってる人いませんか。
とはいえ、不特定多数を相手にするサイト作るときに UTF-8 でメール送る仕様にするのはまだちょっと勇気がいり、悩ましいところではあります。

One Comment
はじめましてMiyoshiさん。
Outlook困ったもんですよね。私のところも文字化け起きています。
前はMac派だったのですが、遂に、、、ノートが熱くなり過ぎて、動かなくなってしまい、Windowsへ。
「はてな」に居を構えて1ヶ月しか経っていない者なので、まだわたり方が何も分かっていない私ですが、コメントしてみました。
では、またです。