HTML_Emoji のよくある質問

目次

Strict Standards: ...... というエラーが出ます

HTML_Emoji ライブラリは、PHP 4 でも動作するように作っているため、 PHP 5 で使うと E_STRICT レベルのエラーが発生します。 エラーが出ると困る場合には、例えば次のような書き方をすると、 エラー表示を一時的に抑制することができます。

$backup = error_reporting(0);
$emoji = HTML_Emoji::getInstance();
error_reporting($backup);

テンプレートに絵文字を書き込みたい

絵文字入力ソフト「i絵文字」 を使って、UTF-8 のテンプレートにバイナリの絵文字を埋め込んでください。 i絵文字をインストールすれば、 テキストエディタなどでも絵文字が表示できるようになります。

i絵文字では docomo の絵文字しか入力できませんが、 数値文字参照を利用したりすれば、au や SoftBank の絵文字を埋め込むことも可能です。 ただし、むやみに au や SoftBank の絵文字をテンプレートに埋め込むと、 docomo の携帯で見た時の表示がひどいことになります。 3キャリア共通のテンプレートを作るのでしたら、 埋め込むのは docomo の絵文字くらいにとどめておくのが無難です。

絵文字の混じったテキストの文字数を数えたい

PHP の mb_strlen() 関数を使って下さい。 例えば次のようにすると、3という数字が返ってきます。

// \xEE\x98\xBE は docomo の晴れの絵文字
echo mb_strlen("晴れ\xEE\x98\xBE", 'UTF-8');

EUC-JP で絵文字を使いたい

HTML_Emoji ライブラリを EUC-JP のエンコーディングに対応させる予定はありません。 EUC-JP で動いている既存のシステムを絵文字に対応させたい場合は、 まず UTF-8 へ移行することをおすすめします。

i絵文字を使ってフォームから絵文字を送信すると、画面に  と表示されます

この現象は、次のような条件が重なった時に起こります *1

  • ブラウザが Firefox か Opera
  • フォームの画面のエンコーディングが Shift_JIS

そのため、PC 用の画面を UTF-8 で表示するようにしておけば、 このような現象をほぼ防げるはずです。

使い方がよく分かりません

まず、マニュアルに目を通して下さい。 それでも分からなければ、掲示板 で質問して下さい。


*1 参考: firefoxのフォームにi絵文字を使って送信すると、 絵文字として認識されません。 - 人力検索はてな