絵文字を扱う

絵文字をタグで表示する

カスタムタグを利用して絵文字を表示する

絵文字の表示は、Mobyletのカスタムタグを利用することで、キャリアを意識することなく表示することが可能です。
カスタムタグを利用するには、まずtaglibの利用設定を参照して、JSPにpageディレクティブを記述してください。

Mobyletでは、日本語で絵文字を指定できるため、ソースを見たときにどの絵文字を使用しているかがすぐに分かります。
taglibの利用設定の通りにpageディレクティブを記述した場合、絵文字のカスタムタグは以下のように記述します。

<m:emoji name="晴れ">

上記の記述では、Docomoの「晴れ」の絵文字を基本として、
Au端末やSoftbank端末からのアクセスの場合には各キャリアに対応した絵文字に変換されます。

「name」に指定する値は、mobylet-core.jarに同梱されている
「mobylet.emojistocker.docomo.xml」
「mobylet.emojistocker.au.xml」
「mobylet.emojistocker.softbank.xml」
を参照してください。

以下のようなXMLが記述されていますので、「emoji」要素の「name」の値を使用可能です。

<?xml version="1.0" encoding="utf-8"?>
<emojipool carrier="DOCOMO">
    <emoji name="晴れ" code="0xE63E">
        <relation carrier="AU">0xE92C</relation>
        <relation carrier="SOFTBANK">0xE04A</relation>
        <relation carrier="OTHER">〓</relation>
    </emoji>
    ・・・その他の設定・・・
</emojipool>

AuやSoftbankの絵文字を基点として記述することも可能です。
以下の例では、Auの「太陽」の絵文字を基点として記述しています。
Auで指定できる「name」の値は「mobylet.emojistocker.au.xml」を参照してください。

<m:emoji name="太陽" carrier="AU">

一般的には、最も絵文字の種類の少ないDocomoを基点に記述します。
AuやSoftbankの絵文字を基点にした場合は、Docomoで絵文字が表示されるかをチェックすることをお勧めします。

絵文字を削除する

文字列に含まれる絵文字を削除する

テキストボックスに入力された値に絵文字が含まれている場合などに、
EmojiUtilsクラスを利用して以下のように入力値から絵文字を削除することが可能です。

String removedEmoji = EmojiUtils.removeEmoji("絵文字が含まれた文字列");

文字列に含まれる絵文字を変換する

文字列に含まれる絵文字を削除するのではなく、
特定の文字に変換したい場合にも以下のようにEmojiUtilsクラスを使用します。

String replacedEmoji = EmojiUtils.replaceEmoji("絵文字が含まれた文字列","絵文字を置き換える文字");

変換仕様を変える

マッピングルールXMLを配置する

キャリア間の絵文字のマッピングルールを指定しているXMLは
mobylet-core.jarに同梱されていますが、独自のマッピングルールXMLを使用することも可能です。

まず、マッピングルールXML配置用のディレクトリをクラスパス上に作成してください。

例) Maven2を利用したプロジェクトの場合

{projectディレクトリ}/src/main/resources/emoji/

例) 通常のWebアプリケーションプロジェクトの場合

{webappルート}/WEB-INF/classes/emoji/

次に、作成したディレクトリに
「mobylet.emojistocker.docomo.xml」「mobylet.emojistocker.au.xml」「mobylet.emojistocker.softbank.xml」
という名前のXMLを作成し、それぞれmobylet-core.jarに同梱されている同名のXMLの内容をコピーしてください。

マッピングルールを変更する

クラスパス上に配したマッピングルールXMLの内容を変更することで、Mobyletの絵文字変換仕様を変更することができます。
例として、Docomoの「晴れ」の絵文字のマッピングルールを変更してみましょう。
「mobylet.emojistocker.docomo.xml」では以下のように定義されています。

<emoji name="晴れ" code="0xE63E">
    <relation carrier="AU">0xE92C</relation>
    <relation carrier="SOFTBANK">0xE04A</relation>
    <relation carrier="OTHER">〓</relation>
</emoji>

「mobylet.emojistocker.au.xml」を開き、「0xE92C」を検索すると、以下のように定義されていることが分かります。

<emoji name="太陽" code="0xE92C">
    <relation carrier="DOCOMO">0xE63E</relation>
    <relation carrier="SOFTBANK">0xE04A</relation>
    <relation carrier="OTHER">〓</relation>
</emoji>

このような定義により、MobyletではDocomoの「晴れ」の絵文字をAuの「太陽」の絵文字に変換しています。

それでは、Docomoの「晴れ」の絵文字が、Auの「ハート」の絵文字に変換されるようにしてみます。
Auの「ハート」の絵文字は、「mobylet.emojistocker.au.xml」で以下のように定義されています。

<emoji name="ハート" code="0xE933">
    <relation carrier="DOCOMO">0xE6EC</relation>
    <relation carrier="SOFTBANK">0xE022</relation>
    <relation carrier="OTHER">〓</relation>
</emoji>

「code」に記述されている「0xE933」をコピーして、「mobylet.emojistocker.docomo.xml」を以下のように編集します。

<emoji name="晴れ" code="0xE63E">
    <relation carrier="AU">0xE933</relation> ←この部分を編集
    <relation carrier="SOFTBANK">0xE04A</relation>
    <relation carrier="OTHER">〓</relation>
</emoji>

これでDocomoの「晴れ」の絵文字は、Auの「ハート」の絵文字に変換されて表示されるようになります。

絵文字を画像で表示する

Otherキャリアの場合でも絵文字を表示する

絵文字は携帯端末自体にインストールされているため、
PCからのアクセスなど、Otherキャリアの場合には絵文字を表示することができません。
しかし、MobyletではOtherキャリアと判定された場合に、絵文字を画像として表示することが可能です。

絵文字画像の配置

絵文字画像一式をダウンロードし、解凍した「mobylet-image」フォルダを任意の場所に配置します。

mobylet.xmlに画像パスを設定する

クラスパス配下のmobylet.xmlに対して、「imagePath」の設定を追加します。
「imagePath」には、「mobylet-image」にアクセスするためのパスを記述します。
以下の例は、プロジェクトのWebアプリケーションルートに「mobylet-image」フォルダを配置した場合の記述になります。

<emoji>
    <basedir>emoji/</basedir>
    <imagePath>mobylet-image</imagePath>
</emoji>

「mobylet-image」フォルダはWebサーバー上の任意の場所に配置することも可能です。

ページのTOPへ戻る