「iPhoneのMailから送ったメッセージ全体が文字化け」のまとめ
- (2013年10月追記1)iOS 7の登場以来、このエントリへのアクセスが増えているので、情報を追加。iSO 7では、以前はauのiPhoneなどでしか発生しなかった「送信したcharset=CP932のメールが、Android端末で化ける」現象が、SoftBank iPhoneでも発生するようになった。詳しくは「iOS 7にしたら送信したメッセージが化けるようになった」を参照。
- (2013年10月追記2)実際に確認できてはいないのだが、iOS 7の仕様変更により、iPhoneのメールアプリからSoftBankのケータイに絵文字を含むメールを送った場合、メッセージ全体が化けるのではないかと思われる(これに該当する経験をお持ちの方、コメント欄などで情報をいただけるとありがたいです)。
- (2013年10月追記3)iOS 7がらみで(メッセージ全体が化けるのではなく)絵文字が表示されない問題については、「iOS 7のメールアプリの絵文字トラブルまとめ」を参照。
- iPhoneの文字化けに関しては、信頼できる情報が少ない。よく掲示板などで文字化けについて質問した初心者が「ググレカス」とか罵倒されているのを見かけるが、検索したところで引っかかる情報は怪しいのがほとんどじゃないかよと思う。そんなわけで、iPhoneの文字化けについて、できるだけウソのないまとめを作りたいという野望を持っているのだけれど、今回はとりあえず「iPhoneのMailから送ったメッセージ全体が(英数字を除いて)文字化けした」というケースについて*1。
charset=UTF-8のメールは、ケータイで化けない。
日本でiPhoneが発売されたのは2008年7月。当時、iPhoneからauのケータイ宛に送ったcharset=UTF-8のメッセージが文字化けし、騒ぎになった。今でも「iPhone 文字化け」で検索すると「日本のケータイはUTF-8に対応していない」という話がトップでヒットしたりする。しかし、auはその年のうちにUTF-8に対応し、それからもう3年以上経っている。ケータイキャリア各社は(端末ではなく)ゲートウェイでUTF-8を変換しているので、機種を問わず、charset=UTF-8のメッセージ全体が化けるようなことはない(もちろんケータイのレパートリに含まれない文字が個別に「?」などに化けることはある)。
→ 「iPhone (TM) 3G」専用のメールサービス「Eメール (i)」のメールフィルター対応および文字コード「UTF-8」対応について | 2008年 | KDDI株式会社
charset=UTF-8のメールがOutlookで化けることがある(たぶん最近はあまり化けない)。
相手がPCのケースでも、その環境がUTF-8に対応していないという可能性は、ほとんどない。受信側がOutlook 2007/2010である場合、設定(PSTの形式)によってはcharset=UTF-8のメッセージが化けることがあるが、この事例も最近はあまり聞かなくなった。
→ Outlook 2007 で UTF8 のメッセージを受信すると文字化けする問題について | Outlook 研究所
→ Outlook 2010 で UTF8 のメッセージを受信すると文字化けする問題について | Outlook 研究所
iPhoneから送ったHTMLメールが、Outlookなどで化けることがある。
iPhoneから送ったHTMLメール(テキストパートはcharset=ISO-2022-JP、HTMLパートはcharset=UTF-8のもの)がOutlookなどで化ける現象は、一時期よく見られた。その後、Outlook 2007のアップデートによってこの文字化けは減ってきたとは思うが、Windowsメール(Vistaに付属)など今でも化ける環境は存在する。
→ Outlook 2007、Outlook 2003 および Outlook Express 6 で、特定の設定がされた HTML 形式のメールを受信すると文字化けが発生する場合がある | Microsoftサポート
→ iPhone/iPadから送信したHTMLメールがWindowsメールやOutlookで化ける | Mac OS Xの文字コード問題に関するメモ
→ iPhone/iPadから送信するメールの文字化けを回避する方法 | Mac OS Xの文字コード問題に関するメモ
→ iPhone/iPad からのメールを Oultook で受信すると文字化けする現象の回避策 | Outlook 研究所
SoftBank iPhoneから送信したcharset=Shift_JISのメールが、MacのMailで化ける。
SoftBank iPhoneは、「①」「㈱」「鄧」などのWindows外字をcharset=Shift_JISで送信する。これをMacのMailで受信すると、メッセージ全体が化ける。ただし、charset=Shift_JISで送信されたWindows外字であっても、そのすべてがMailで「全体化け」を引き起こすわけではなく、外字のみが化けることもある。
au iPhoneから送信したcharset=CP932のメールが、Android端末でよく化ける。
au iPhone、Wi-Fi iPad、iPod touchは、全角チルダ「~」やWindows外字などの含まれるメッセージをcharset=CP932で送信する。これがAndroid端末の標準的なメーラーで化ける。いま巷でいちばん流行っていると思われる文字化け。
au iPhoneでExchangeのアカウントとしてGmailを使っていると、全角チルダ「~」などを含むメールが化ける。
これも、au iPhone、Wi-Fi iPad、iPod touchのCP932問題。Exchangeサーバ上でcharsetが変換されるので、受け手の環境で化けているメッセージのcharsetを確認するとUTF-8となっている(UTF-8が文字化けの原因であるように見える)が、UTF-8は文字化けの結果であって原因ではない。
charset=big5-hkscsやGB2312のメールが、ケータイなどで化ける。
iPhone Mailは「設定>一般>キーボード>各国のキーボード」におけるキーボードの並び順によってエンコードに用いるcharsetを決定しているものと思われる。このため、たとえば「中国語-繁体字」や「中国語-簡体字」などが「各国のキーボード」で日本語よりも上にあると、charsetがbig5-hkscsまたはGB2312となり、ケータイなどでメッセージ全体が化ける。
ほぼ万能の文字化け予防策は、署名に「◉」「⌘」「♡」などを入れておくこと。
これまでのメールの常識は、「ISO-2022-JPなら化けにくい」というものだった。しかし、iPhoneのMailから送信するメッセージについて言えば、ISO-2022-JPでも(受け手の環境のほうに問題があるにしろ)化けることがある(HTMLメールのケース)。また、いわゆる「機種依存文字」を使わないように気をつけていても、「~」でShift_JISやCP932になったりする。そのようなわけで、iPhoneのMailから送信するメッセージは、charset=UTF-8に固定しておくのがいちばん安全だと思う。au iPhoneなら、「設定>メール/連絡先/カレンダー>署名」に適当な絵文字を入れておけばOK。ただし、SoftBank iPhoneでは絵文字はShift_JISになってしまう。iPhoneのキーボードから簡単に入力できる文字のなかでcharset=UTF-8にするために使えるものとしては、「◉(まる)」「⌘(こまんど)」「♡(はーと)」などがある*2。