pictogram.xml設定

概要

絵文字の文字コードはキャリアに依存しているため、互換性がありません。
そこで、各々の絵文字について他キャリアで表示させた場合にどの絵文字で表現するかを設定します。
x-Servletは元コンテンツ中のiモード対応絵文字、もしくは、独自のpictogram表現絵文字をpictogram.xmlの紐付けに基づき、各キャリア用の絵文字に変換します。

場所

x-Servletインストールディレクトリ

conf

└ pictogram.xml

形式

<?xml version="1.0" encoding="Shift_JIS"?>
<PictogramTable>
 <Pictogram name="sun1">
   <Item name="CHTML">63647</Item>
   <Item name="HDML">sun</Item>
   <Item name="MML">1:0x6A</Item>
   <Item name="VHTML">xE04A</Item>
   <Item name="EXHTML">xE63E</Item>
   <Item name="WHTML">xE63E</Item>
   <Item name="GOOGLE">#xFE000</Item>
   <Item name="IMAGE">xp_sun1</Item>
   <Item name="ALT">&amp;gt;O&amp;lt;</Item>
 </Pictogram>
(中略)
 <Pictogram name="melody">
   <Item name="CHTML">63899</Item>
   <Item name="HDML">melody2</Item>
   <Item name="MML">1:0x5E</Item>
   <Item name="VHTML">xE03E</Item>
   <Item name="EXHTML">xE6F6</Item>
   <Item name="WHTML">xE6F6</Item>
   <Item name="GOOGLE">#xFE813</Item>
   <Item name="IMAGE">xp_melody</Item>
   <Item name="ALT">♪</Item>
 </Pictogram>
(中略)
</PictogramTable>

説明

ひとつの<Pictogram>タグでひとつの絵文字変換を定義しています。
<Pictogram name="melody">を例にそれぞれのタグの意味を以下に記述します。

  • <Pictogram name="xxxx">
    name属性でpictogram表現絵文字の名前を定義しています。
  • <Item name="CHTML">xxxx</Item>
    docomo端末用の絵文字表現を定義します。

    端末には基本絵文字(63647~63838)の場合は数値を16進バイナリ表記(この例の場合 0xF99B)で出力し、
    拡張絵文字(xE70C~xE757)の場合は&#xxxx;  が出力されます。  [Version2.8.0(20090617)以上]
  • <Item name="HDML">xxxx</Item>
    WAP2.0端末用の絵文字表現を定義します。
    WAP2.0端末に<img localsrc="xxxx"> (この例の場合<img localsrc="melody2">)が出力されます。
  • <Item name="MML">t:xxxx</Item> ※現在は3GC型以外の端末はサービスが終了しているため変更の必要はありません。
    SoftBank C型およびP型端末用の絵文字表現を定義します。端末には

    (0x1B)(0x24)(0x47)(xxxx)(0x0F)(tが1の場合)
    (0x1B)(0x24)(0x45)(xxxx)(0x0F)(tが2の場合)
    (0x1B)(0x24)(0x46)(xxxx)(0x0F)(tが3の場合)
    (0x1B)(0x24)(0x4F)(xxxx)(0x0F)(tが4の場合)
    (0x1B)(0x24)(0x50)(xxxx)(0x0F)(tが5の場合)
    (0x1B)(0x24)(0x51)(xxxx)(0x0F)(tが6の場合)

    (この例の場合 "(0x1B)(0x24)(0x47)(0x5E)(0x0F)" ) が出力されます。

    注1)「(0xHH)」は16進数で表現された1byteの文字コードを示します。
    注2)tが4以上の絵文字が表示できるのはパケット対応機のみです。
    非パケット対応機がアクセスした場合、tが4以上の絵文字は<Item name="MML"> ではなく <Item name="ALT"> が適応されます。
  • <Item name="VHTML">xxxx</Item>
    SoftBank 3GC端末用の絵文字表現を定義します。
    端末には &#xxxx; (この例の場合&#xE03E;) が出力されます。
  • <Item name="EXHTML">xxxx</Item>
    EMOBILE端末用の絵文字表現を定義します。
    端末には &#xxxx; (この例の場合&#xE6F6;) が出力されます。
  • <Item name="WHTML">xxxx</Item>
    WILLCOM端末用の絵文字表現を定義します。
    端末には &#xxxx; (この例の場合&#xE6F6;) が出力されます。
  • <Item name="HTML">xxxx</Item>
    PCブラウザ用の絵文字表現を定義します。
    端末には &xxxx; (この例の場合は定義されていません)が出力されます。
  • <Item name="GOOGLE">xxxx</Item>
    auの一部スマートフォン用の絵文字表現を定義します。
    端末には &#xxxx; (この例の場合&#xFE813;) が出力されます。
  • <Item name="IMAGE">xxxx</Item>
    絵文字非対応スマートフォン用の絵文字表現を定義します。
    端末には <span class="xp_sprite xxxx"></span> (この例の場合xp_melody) が出力されます。
  • <Item name="ALT">xxxx</Item>
    特定キャリア向けの絵文字が定義されていない場合に表示するデフォルトの絵文字表現を定義します。
    端末には xxxx (この例の場合♪)が出力されます。

<Item>タグの内容には「,(カンマ)」区切りで複数の絵文字を定義することができます。
例) <Item name="VHTML">exclamation2,question1</Item>

詳細

変換要領

  • iモード対応絵文字で絵文字が記述されている場合 iモード対応絵文字には以下の3つの形式があります。
    1. Shift-JISによるバイナリコード入力(表現:バイナリ)
    2. Unicodeのテキスト入力(表現:&#xhhhh[hhhhは16進数のUnicode])
    3. Shift-JISのテキスト入力(表現:&#*****[*****は10進数のShift-JISコード])
    いずれの形式で記述されている場合もx-Servletは
    1. 一旦10進数のShift-JISコードに変換する(yyyyyとする)
    2. <Item name="CHTML">yyyyy</Item>を含む<Pictogram>定義を探し出す
    3. 該当するキャリア用の<Item>に従って絵文字を出力する
    と言う手順で絵文字の変換を行います。
  • pictogram表現絵文字や文字実態参照で絵文字が記述されている場合
    &XXXXX;という記述(例:"&melody;")のpictogram表現絵文字が記述されていた場合x-Servletは
    1. <Item name="HTML">XXXXX</Item>を含む<Pictogram>定義を探し出す
    2. <Pictogram name="XXXXX">となるような<Pictogram>定義を探し出す
    3. 該当するキャリア用の<Item>に従って絵文字を出力する
    と言う手順で絵文字の変換を行います。
  • pictogram表現絵文字や文字実態参照で絵文字が記述されている場合で、絵文字非対応スマートフォンに出力する場合 [Version2.10.0以上]
    &XXXXX;という記述(例:"&melody;")のpictogram表現絵文字が記述されていた場合x-Servletは
    1. <Item name="IMAGE">XXXXX</Item>を含む<Pictogram>定義を探し出す
    2. <Pictogram name="XXXXX">となるような<Pictogram>定義を探し出す
    3. 絵文字非対応スマートフォン用の<Item>に従って絵文字を出力する
    4. 絵文字非対応スマートフォン用のCSSファイル (xp_sprite.css) を受け取る
    5. 絵文字非対応スマートフォン用の画像ファイル (xp_sprite.gif) を受け取る
    と言う手順で絵文字の変換を行います。

絵文字変換ルールの変更・追加

pictogram.xmlを修正することで絵文字変換ルールの変更・追加を行うことができます。

  • 変換ルールを変更する場合
    変更したい絵文字の<Pictogram>要素を探し、該当する端末用の<Item>xxxx</Item>定義のxxxx部分を変更します。
  • 変換ルールを追加する場合
    <Pictogram>要素とそれに付随する<Item>要素を新たに追加します。

注1)<Pictogram name="xxxx">を新規に追加するような場合にはxxxx部分が既に定義されている<Pictogram>要素のname属性と一致しないことを確認してください。
注2) 既存の<Item name="CHTML">xxxx</Item>を変更したり、新たに<Pictogram>要素を追加し<Item name="CHTML">xxxx</Item>を追加する際には「変換要領」の「iモード対応絵文字で絵文字が記述されている場合」に記述した動作にも影響を及ぼす可能性があることに注意してください。
注3) 既存の<Item name="IMAGE">xxxx</Item>を変更したり、新たに<Pictogram>要素を追加し<Item name="IMAGE">xxxx</Item>を追加する際には「変換要領」の「iモード対応絵文字で絵文字が記述されている場合」に記述した動作にも影響を及ぼす可能性があることに注意してください。

コンテンツの作成例

元コンテンツ

<html>

  <body>

    &#63647; 晴れ<br>

    &#63648; 曇り<br>

    &#63649; 雨<br>

    &#63650; 雪<br>

    &#63651; 雷<br>

    &#63652; 台風<br>

    &#63653; 霧<br>

    &#63654; 小雨<br>

  </body>

</html>

端末での表示
キャリア絵文字が表示できるもの

docomo(N903i) au(W51K) SoftBank(910SH)

<html>

  <head>

  </head>

  <body>

    0xF89F 晴れ<br>

    0xF8A0 曇り<br>

    0xF8A1 雨<br>

    0xF8A2 雪<br>

    0xF8A3 雷<br>

    0xF8A4 台風<br>

    0xF8A5 霧<br>

    0xF8A6 小雨<br>

  </body>

</html>

 

※実際には2バイトのバイナリコードが出力されています。

<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE html PUBLIC
"-//OPENWAVE//DTD XHTML 1.0//EN"
"http://www.openwave.com/
DTD/xhtml-basic.dtd">

<html xmlns="http://www.w3.org/
1999/xhtml" xml:lang="ja">

  <head>

  </head>

  <body>

    <img localsrc="sun"> 晴れ<br/>

    <img localsrc="cloud"> 曇り<br/>

    <img localsrc="rain"> 雨<br/>

    <img localsrc="snowman"> 雪<br/>

    <img localsrc="bolt"> 雷<br/>

    <img localsrc="typhoon"> 台風<br/>

    <img localsrc="mist"> 霧<br/>

    <img localsrc="umbrella"> 小雨<br/>

  </body>

</html>

<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE html PUBLIC
"-//JPHONE//DTD XHTML Basic 1.0 Plus//EN"
"xhtml-basic10-plus.dtd">

<html>

  <head>

  </head>

  <body>

     &#xE04A; 晴れ<br/>

     &#xE049; 曇り<br/>

     &#xE04B; 雨<br/>

     &#xE048; 雪<br/>

     &#xE13D; 雷<br/>

     &#xE443; 台風<br/>

     ∴∴ 霧<br/>

     &#xE43C; 小雨<br/>

   </body>

</html>

WILLCOM(WX310SA) EMOBILE(H11T)
 

<html>

  <head>

  </head>

  <body>

    &#xE63E; 晴れ<br>

    &#xE63F; 曇り<br>

    &#xE640; 雨<br>

    &#xE641; 雪<br>

    &#xE642; 雷<br>

    &#xE643; 台風<br>

    &#xE644; 霧<br>

    &#xE645; 小雨<br>

  </body>

</html>

<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

<html>

  <head>

  </head>

  <body>

    &#xE63E; 晴れ<br/>

    &#xE63F; 曇り<br/>

    &#xE640; 雨<br/>

    &#xE641; 雪<br/>

    &#xE642; 雷<br/>

    &#xE643; 台風<br/>

    &#xE644; 霧<br/>

    &#xE645; 小雨<br/>

  </body>

</html>

 

x-Servlet が各キャリアの文字コードにコンテンツを変換し、それぞれ独自の絵文字が表示されています。

キャリア絵文字が表示できないもの

IS03[Android_2.2] IS12T[Windows Phone_7.5] BlackBerry Bold[BlackBerry OS_4.6]

<html>

  <head>

  </head>

  <body>

    &#xFE000; 晴れ<br/>

    &#xFE001; 曇り<br/>

    &#xFE002; 雨<br/>

    &#xFE003; 雪<br/>

    &#xFE004; 雷<br/>

    &#xFE005; 台風<br/>

    &#xFE006; 霧<br/>

    &#xFE007; 小雨<br/>

  </body>

</html>

<html>

  <head>

  </head>

  <body>

    <span class="xp_sprite xp_sun1"></span> 晴れ<br/>

    <span class="xp_sprite xp_cloud"></span> 曇り<br/>

    <span class="xp_sprite xp_rain"></span> 雨<br/>

    <span class="xp_sprite xp_snow"></span> 雪<br/>

    <span class="xp_sprite xp_thunder"></span> 雷<br/>

    <span class="xp_sprite xp_typhoon"></span> 台風<br/>

    <span class="xp_sprite xp_mist"></span> 霧<br/>

    <span class="xp_sprite xp_drizzle"></span> 小雨<br/>

  </body>

</html>

<html>

  <head>

  </head>

  <body>

    <span class="xp_sprite xp_sun1"></span> 晴れ<br/>

    <span class="xp_sprite xp_cloud"></span> 曇り<br/>

    <span class="xp_sprite xp_rain"></span> 雨<br/>

    <span class="xp_sprite xp_snow"></span> 雪<br/>

    <span class="xp_sprite xp_thunder"></span> 雷<br/>

    <span class="xp_sprite xp_typhoon"></span> 台風<br/>

    <span class="xp_sprite xp_mist"></span> 霧<br/>

    <span class="xp_sprite xp_drizzle"></span> 小雨<br/>

  </body>

</html>

テキストキャラクタに置き換わるもの

BlackBerry 8707h[BlackBerry OS_4.2]

<html>

  <head>

  </head>

  <body>

    >O<  晴れ<br>

    (())   曇り<br>

    ///   雨<br>

    8     雪<br>

    ww   雷<br>

    ◎   台風<br>

    ∴∴ 霧<br>

    ▽    小雨<br>

  </body>

</html>

 

絵文字サンプル

絵文字変換対応表はx-Servlet ユーザ専用ページ(https://x-users.x-servlet.com/license/do/login(別ウィンドウで開きます))にございますのでご確認下さい。
またCD-ROMの/xproxy/html/pictogramにiモード対応絵文字を列挙したコンテンツを収めています。このディレクトリ以下を元コンテンツサーバにコピーしx-Servletを経由してpictogram.htmlを参照することで、どのような絵文字変換が行なわれるかが実機でご確認いただけます。ご利用ください。

参考

  • NTT docomo (外部サイトへ移動します)
    「知りたいiモード技術情報を選ぶ」内の「iモード対応絵文字」を参照ください。
  • au (外部サイトへ移動します)
    「技術情報」内の「絵文字」 を参照ください。
  • SoftBank (外部サイトへ移動します)
    ページ内の「絵文字一覧」を参照ください。
  • Google絵文字コード (外部サイトへ移動します)
    一覧表の「Google」列を参照ください。
TOP