API アクセス時の絵文字の取り扱いについて

API で扱っている文字コードは入出力共に UTF-8 となります。取り扱える絵文字の種類としては NTT docomo の絵文字のみで受け渡しの際は FOMA 端末で charset=utf8 指定されている際に取り扱う UTF-8 バイト列で表現する必要があります。

他社端末で入力された絵文字で docomo に存在しない絵文字の場合、API はその文字列を "?" (\x3F) に置換します。

作ろうiモードコンテンツ:基本絵文字一覧 によると「晴れ」の ShiftJIS 16進表現は "\xF8\x9F" です。これに対応する UTF-8 表現は "\xEE\x98\xBE" となります。

ガジェットサーバー経由でパートナー様へリクエストが中継される際のキャリア別の文字コードは、

キャリア

文字コード

docomo

shift_jis

au

shift_jis

softbank

utf-8

となり、絵文字はキャリアごとにマッピングされます。従って、ガジェットサーバーから渡される UserAgent の値からリクエスト端末のキャリアを判定し、それぞれのキャリアに応じた文字コードの変換処理が必要になります。


サンプルコード

docomo 端末から送られて来た文字列をガジェットサーバー経由で受け取った際に、TextData API にデータを投稿する場合などで必要になる文字コード変換の例です。

パートナー様のサーバーにガジェットサーバーから送られるデータは docomo の絵文字を含む可能性のある ShiftJIS のバイト列で、API にそのデータを投稿する際には UTF-8 で表現する必要があります。

Perl

EncodeJPMobile モジュールを使った場合

PHP

HTML_Emoji ライブラリを使った場合

Text_Pictogram_Mobile ライブラリを使った場合


関連項目

API リファレンス
ゲームサーバーから Gadget サーバーへのレスポンス
API サーバーからゲームサーバーへのレスポンス

参照リンク

作ろうiモードコンテンツ:基本絵文字一覧
作ろうiモードコンテンツ:拡張絵文字一覧
EncodeJPMobile モジュール (perl)
Text_Pictogram_Mobile ライブラリ (php)
HTML_Emoji ライブラリ (php)

更新履歴

  • 2017/07/19
    • URL のリンク切れを修正
  • 2013/03/15
    • ドキュメント移行

PREVIOUS

API アクセス時のエラーハンドリングについて

NEXT

リクエストに関するパフォーマンスガイドライン