絵文字定義ファイル(emoji.xml)の記述内容をここに記します。
i-Mode用の絵文字を書いておけば、アクセスしたキャリアによって、mod_chxjが対応の絵文字に自動変換します。ソースに2byteのバイナリコードを直接書いても、10進参照文字列(9)(&#XXX;の形)で書いても、どちらでも変換対象になります。10進参照文字列で書いた場合は、mod_chxjにより、自動で2バイトコードに変換します。(現在のところ16進参照文字列には対応していません。)
絵文字の変換に関する動作を変えたい場合(例えば「ハートがあったら、auの場合はスペードに」とか、「変換定義がおかしい」といった場合)は、 emoji.xmlファイルを直接編集することによって定義を変更することが可能です。emoji.xmlはXMLファイルとなっていますので、vi等で定義を変更することができます。
以下に、emoji.xmlファイルの一部を記します。
<?xml encoding="Shift_JIS" >
<emoji>
<set>
<no>1</no>
<imode>
<hex1>f8</hex1>
<hex2>9f</hex2>
<string></string>
<description></description>
</imode>
<ezweb>
<A>44</A>
<B>44</B>
<C>44</C>
<D>44</D>
</ezweb>
<jphone>
<string>$Gj</string>
</jphone>
<iphone>
<string></string>
</iphone>
<android>
<string>image</string>
</android>
</set>
絵文字の定義は、<emoji>タグから</emoji>タグまでの間にあります。その中の要素を説明します。1つの絵文字につき、1つのセット(<set>タグから</set>タグまで)とし、キャリア毎の絵文字を定義しています。
まず、元となるi-Mode用の絵文字は、<imode>タグにはさまれた間に定義されています。 <imode>要素は、2バイトコード要素(<hex1><hex2>)と、10進参照文字列要素(< string>)を保持していて、この2つの要素を変換元の値として使用します。アクセスしてきた端末が、i-Mode機であった場合で、かつCHTML中に10進参照文字列が絵文字として書かれている場合には、<hex1><hex2>要素に定義されている値に置換します。
以下に<imode>要素の子ノードを記します。
| 要素 | 内容 |
| <hex1> | 絵文字SJISコードの1バイト目を16進数で指定します。 |
| <hex2> | 絵文字SJISコードの2バイト目を16進数で指定します。 |
| <string> | 絵文字SJISコードを10進参照文字列で指定します。 |
| <description> | mod_chxjでは意味はありません。 |
| <color> | 0.13.0以降で有効です。絵文字の色を指定します。この値はChxjImodeEmojiColorディレクティブでAUTOもしくはOFF以外が指定された場合のみ機能します。詳細は ChxjImodeEmojiColorディレクティブを参照してください。 |
アクセスしてきた端末が、AU機であった場合、<ezweb>要素に定義されている値に変換します。<ezweb>要素は、<A>~<D>要素を持っていて、それぞれAUの絵文字タイプA~Dに対応していますので、もし、Dタイプの絵文字端末であったなら、<D>要素に定義されている値に変換します。ここで定義されている値は、HDML機の場合は、<IMG ICON="XX">の"XX"の部分に当てはめられて、置換されます。XHTML機の場合は、<IMG LOCALSRC="XX">の"XX"の部分に当てはめられて、置換されます。
0.14.0以降の機能
<A>〜<D>には以下の指示子を指定することができます。指示子とその意味は以下のとおりです。
| 指示子 | 意味 | 例 |
| raw: | raw:に続く文字列をそのまま出力せよ | <A>raw:あいうえお</A> |
| image | ChxjUseEmojiImage/ChxjEmojiImageUrlに従いimgタグへ変換せよ | <A>image</A> |
アクセスしてきた端末が、Vodafone/J-Phone/SoftBank端末であった場合、<jphone> 要素に定義されている値に変換します。<jphone>要素は、<string>要素を保持していて、ここで定義されている値を直接使用します。
0.14.0以降の機能
<string>要素には以下の指示子を指定することができます。指示子とその意味は以下のとおりです。
| 指示子 | 意味 | 例 |
| raw: | raw:に続く文字列をそのまま出力せよ | <string>raw:あいうえお</string> |
| image | ChxjUseEmojiImage/ChxjEmojiImageUrlに従いimgタグへ変換せよ | <string>image</string> |
アクセスしてきた端末が、iPhone端末であった場合、<iphone>要素に定義されている値に変換します。<iphone>要素は、
<string>要素を保持していて、ここで定義されている値を直接使用します。
device_data.xmlで定義されているiPhone3、iPhone4の場合は本定義が使用されますが、iPhone2の場合には
imgタグへの変換を試みます。そのためiPhone端末への変換を有効にするには!ChxjUseEmojiImage/ChxjEmojiImageUrlを
設定する必要があります。
<string>要素には以下の指示子を指定することができます。指示子とその意味は以下のとおりです。
| 指示子 | 意味 | 例 |
| raw: | raw:に続く文字列をそのまま出力せよ | <string>raw:あいうえお</string> |
| image | ChxjUseEmojiImage/ChxjEmojiImageUrlに従いimgタグへ変換せよ | <string>image</string> |
アクセスしてきた端末が、Android端末であった場合、<android>要素に定義されている値に変換します。<android>要素は、
<string>要素を保持していて、ここで定義されている値を直接使用します。
付属のサンプルでは全絵文字はimgタグへの変換指示となっていますので、サンプルをそのままご使用の際は
ChxjUseEmojiImage/ChxjEmojiImageUrlを設定する必要があります。
<string>要素には以下の指示子を指定することができます。指示子とその意味は以下のとおりです。
| 指示子 | 意味 | 例 |
| raw: | raw:に続く文字列をそのまま出力せよ | <string>raw:あいうえお</string> |
| image | ChxjUseEmojiImage/ChxjEmojiImageUrlに従いimgタグへ変換せよ | <string>image</string> |
絵文字定義にimage指示子を指定することでimgタグへ変換します。その際、使用するURLはChxjEmojiImageUrlディレクティブで指定する必要があります。 また、必ずChxjUseEmojiImageはOnである必要があります。 ChxjEmojiImageUrlで指定したUrl下に絵文字定義ファイル中の<no>タグで指定した値をファイル名にもったファイルを用意します。 例えばChxjEmojiImageUrlに"/images"、<no>1</no>の絵文字を変換する場合の変換後のimgタグは以下のようになります。
<img src="/images/1" />上記の例の場合には/imagesに画像を別途用意する必要があります。