絵文字活用術その1::キャリアを意識せず絵文字を使うには

By uchida - 08/09/11 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

携帯サイトで絵文字を使用するには、サイト側で一工夫が必要です。
またキャリア間で絵文字の扱いが違うので、複雑になります。
そこで、今回キャリアを意識することなく、携帯サイトを作成するための方法をご紹介していきます。

■各キャリアの絵文字の扱い

docomo
「&#xxxxx;」(Shist-JIS)という形式の数値文字参照で記述する。
太陽を表す場合:と表現するが、バイナリ値に変換して「\xF7EB」を埋め込む。

au
<img>タグで記述する
例)<img localsrc=”44″></img>
しかしauの場合はサーバでdocomoの絵文字を対応する絵文字に変換してくれます。
要するに、auの文字を使う場合はdocomoと同じ記述で大丈夫です。

SoftBank
SoftBankではDoCoMoの絵文字に対応する「#Gj」という、SoftBankが定義するWebコードと呼ばれるコードに変換する。SoftBankでは上記のWebコードを埋め込む際にシフトイン(SI:0x1B)コードとシフトアウト(SO:0x0F)のコードを入れなければならず、結果的に

SI + #Gj + SO

というコードに変換しなければならない。

■絵文字コードの変換
上記のように各キャリアで絵文字の扱いが違います。
ですので、ユーザーの使用しているキャリアによって絵文字コードを変換する必要があります。
また、絵文字は、EUC-JPやUTF-8で他の文字が存在しない領域を使用していますので、内部で文字コードの変換を行った場合、絵文字の文字化けが発生する可能性があります。
ですので、本サイトでは絵文字を取得した時点で特殊な記号に変換して保存する方法をとります。

■キャリアの判別
キャリアは$_SERVER[‘USER_AGENT’]で判別できます。

○docomo
preg_match('/^DoCoMo/', $UA)
○au
preg_match('/^(KDDI\-|UP\.Browser)/', $UA)
○SoftBank
preg_match('/^(J\-PHONE|Vodafone|SoftBank|Vemulator|J-EMULATOR|MOT\-)/', $UA)
○WILLCOM
preg_match('/DDIPOCKET;|WILLCOM;/', $UA)

次回は各キャリアから渡された絵文字を特殊文字に変換する方法を記述していきます。

■公式情報サイト(絵文字)
docomo  基本絵文字
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/basic/index.html
docomo  拡張絵文字
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/extention/index.html
au
http://www.au.kddi.com/ezfactory/tec/spec/3.html
softbank  ※creationのIDが必要です
http://creation.mb.softbank.jp/web/web_pic_about.html