ドコモ、au、SoftBankの3キャリアの携帯絵文字入力に対応したフォームを作る

はてなブックマーク - ドコモ、au、SoftBankの3キャリアの携帯絵文字入力に対応したフォームを作る
このエントリーをはてなブックマークに追加
Share on Facebook

表題のものを作ったので書き残しておきます。
まず、全部を解説するとすごく大変なので、ポイントを順をおって解説していきます。

  1. 準備
  2. 入力
  3. 出力

ってな感じでいきます。

準備

まずは前準備です。

  • ドコモとauはShift_JIS、SoftBankはUTF-8にする

こうしておかないと、絵文字がうまく受け取れなかったりします。
auをUTF-8でやる方法もあるみたいですが、ここでは割愛。

入力

次はフォームから入力された文字をDBに格納します。

  • 絵文字を各キャリアの形式のまま保存します
  • 例:
    ドコモ:裂
    au:<img localsrc="355" alt="" />
    SoftBank:$GE

    変換にはMobilePictogramConverterが役立ちました。(なぜかリンク切れしています。そのうち復活するかも)

  • どのキャリアでの入力かも保存しておきます(UserAgentとか)

各キャリアの形式のまま絵文字を保存するのは壊さないようにするためです。

出力

DBに格納されたデータを出力します。

  • そのまま出力すると絵文字が自分のキャリアのものしか表示されません。レコード毎に入力されたキャリアから現在のキャリアに絵文字を変換してあげます。
  • ここもMobilePictogramConverterが役立ちます!

  • DoCoMoの場合、DBに格納された絵文字はSJIS形式(拡張絵文字を除く)です。出力はunicodeにしてあげたいので、SJIS形式の絵文字をunicode形式に変換する必要があります。
  • http://ke-tai.org/blog/2007/11/23/iemoji_conv1/この記事が役立ちます。

この形で3キャリアに対応した絵文字入力フォームができます!

コメントをどうぞ

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">