auとSoftBankのiPhoneにおける絵文字対応を比較する
- これまでauのiPhoneは、絵文字の扱いにおいてSoftBankに遅れをとっていた。が、2012年1月27日午前9時、状況が変わった(au「Eメール絵文字のiPhone 4Sへの対応予定のお知らせ」)。そこで今回は、au iPhoneから送信した絵文字が相手のケータイにどのように伝わるのか、SoftBank iPhoneと比較しながら確認してみようと思う*1。
- Unicode絵文字を他のキャリアの絵文字に変換する際、auのゲートウェイはUnicodeの絵文字テーブル(EmojiSources.txt)をベースとした表を用いる。このため、au絵文字にない文字であっても変換することができる。一方、SoftBankの他社向け変換はSoftBankのSift_JIS経由であるため、SoftBank絵文字にない文字には対応できない。SoftBank iPhone発のメッセージがSoftBank絵文字以外の絵文字を含んでいる場合、charset=UTF-8で送信され、ゲートウェイはそれをスルーする。その結果、たとえば(iモード絵文字にあってSoftBank絵文字にない)カタツムリの絵文字をSoftBank iPhoneからdocomoのケータイに送っても、正しく表示されない。また、メッセージ全体がcharset=UTF-8になるため、一緒に送った絵文字もすべて「・」に化けてしまう*2。
- EmojiSources.txtはフォールバックを定義していない。しかし、auのゲートウェイは従来と同様、「似た絵文字」による代替をサポートしている。たとえば「熱帯魚」の絵文字をdocomoに送るときには、「魚」の絵文字に変換する。要するに、EmojiSources.txtに従来の変換テーブルのフォールバック分を足したようなかんじだ。
- auの他社向け変換テーブルは、以前からテキストによるフォールバックを多用し、「〓」は使わない。一方、SoftBankの他社向け変換テーブルは、テキストによるフォールバックはあまり使わず、主に「〓」を用いる。すでに述べたようにauのゲートウェイはUnicodeベースの変換テーブルを採用しているが、フォールバック用のテキストは従来の「auケータイ→他社ケータイ」のものをベースとしている。たとえば、iPhone(Appleカラー絵文字)のU+1F41B BUGは毛虫だが、これをau iPhoneからdocomoに送ると[ゲジゲジ]と表示される。このあたりは変えたほうがよかったのではないかという気もするが、どうなのだろう。
- 他社向けの変換では「〓」は使わないauだが、「au iPhone→auケータイ」では「〓」が出現する。たとえばau iPhoneからauケータイに送ったハムスターの絵文字は、[ハムスター]ではなく「〓」になる。たぶん送信側ゲートウェイ(他社向け変換)と受信側ゲートウェイ(自社向け変換)でテーブルが違っているのだろうが、ちょっと不思議な気もする。
- auのゲートウェイは、送信側だけでなく、受信したUnicode絵文字の変換にも対応した。これにより、(iPhoneだけでなく)auのケータイにもUTF-8でUnicode絵文字を送れるようになった。docomoのケータイでは表示できなかったUTF-8のカタツムリも、auのケータイなら表示できる。
- au iPhoneとSoftBank iPhoneでは、利用するテーブルの違いにより、変換結果が違ってくることがある。たとえばiPhoneのアリ星人は、au iPhoneから(Unicodeテーブル経由で)auケータイに送るとUFOになり、SoftBank iPhoneから(SoftBankテーブル経由で)auケータイに送るとタコ星人になる。また、SoftBank iPhoneからアリ星人を送った場合でも、(他の文字の影響で)charset=UTF-8であれば、(受信側のauのゲートウェイがUnicodeテーブルで変換するので)UFOになる。