8-3モバイルプログラミングの応用Tips485 絵文字を各キャリア毎に変換する
Level3
PointSmartyを使用し、1つのプログラムで絵文字が扱えるようにする
各キャリア毎に絵文字の扱い方は違いますが、それを1つのプログラムで絵文字が扱えるようにします。本TipsではSmartyを使用します。
各キャリアの絵文字の仕様は大きく違っています。絵文字に割り当てられているコードやその記述方法など、多種多様です。さらにSJISコードやUnicode、ウェブコード……などなどともかく複雑怪奇なのです。これではプログラマーもHTMLを書くデザイナーさんもサイト運営者も混乱してしまいます。そこで、本Tipsでは、絵文字のコードは「ドコモのUnicode」表記に統一し、プログラムで各キャリア毎に変換して出力させる方法を解説します。
本Tipsでは2つのSmartyのアウトプットフィルターを使います。ひとつは「481」で紹介した、iモード、EZWebには文字コードをSJISに、Y!ケータイにはUTF-8のままで出力する文字コード変換フィルター(リスト3)、もう一つは絵文字を各キャリア向けに変換するフィルターです(リスト2)。まずリスト2をoutputfilter.emoji.php、リスト3をoutputfilter.convert_encode.phpという名前でSmartyのPluginsディレクトリに保存します。またプログラム及びテンプレートファイルは全て文字コードがUTF-8なのに注意してください。
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録