| 6 |
<subtitle></subtitle> |
<subtitle></subtitle> |
| 7 |
<author>Atsushi Konno</author> |
<author>Atsushi Konno</author> |
| 8 |
<date>29 Mar 2005</date> |
<date>29 Mar 2005</date> |
| 9 |
<date>Last modified: Tue, 5 Feb 2008 13:20:28 +0900</date> |
<date>Last modified: Wed, 13 Feb 2008 18:35:16 +0900</date> |
| 10 |
</head> |
</head> |
| 11 |
<body> |
<body> |
| 12 |
<section title="Overview"> |
<section title="Overview"> |
| 121 |
|
|
| 122 |
<program title="httpd.conf"> |
<program title="httpd.conf"> |
| 123 |
#==================================================================================== |
#==================================================================================== |
| 124 |
# モジュールをApache2.0にロード |
# モジュールをApache2.xにロード |
| 125 |
#==================================================================================== |
#==================================================================================== |
| 126 |
LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so |
LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so |
| 127 |
|
|
| 157 |
|
|
| 158 |
<program title="httpd.conf"> |
<program title="httpd.conf"> |
| 159 |
#==================================================================================== |
#==================================================================================== |
| 160 |
# モジュールをApache2.0にロード |
# モジュールをApache2.xにロード |
| 161 |
#==================================================================================== |
#==================================================================================== |
| 162 |
LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so |
LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so |
| 163 |
|
|
| 318 |
</ol> |
</ol> |
| 319 |
</subsection> |
</subsection> |
| 320 |
|
|
| 321 |
<subsection title="文字コードを変換したい場合(EXPERIMENTAL)"> |
<subsection title="文字コードを変換したい場合"> |
| 322 |
<ol> |
<ol> |
| 323 |
<li>httpd.confに以下を追加します。 |
<li>httpd.confに以下を追加します。 |
| 324 |
下記は、URIが/chxjで始まる全てのコンテンツに対して動作するようmod_chxjに指示しています。 |
下記は、URIが/chxjで始まる全てのコンテンツに対して動作するようmod_chxjに指示しています。 |
| 762 |
</ol> |
</ol> |
| 763 |
</section> |
</section> |
| 764 |
|
|
| 765 |
|
|
| 766 |
|
|
| 767 |
|
|
| 768 |
|
<section title="文字コードについて"> |
| 769 |
|
サーバサイドコンテンツについてはShift_JIS(CP932)、EUCJP-WIN(Win外字対応のEUCJP)、UTF-8のどれかで記述することが可能です。 |
| 770 |
|
Shift_JISで記述した場合は絵文字についてもShift_JISで、EUCJP-WINで記述した場合は絵文字についてもEUCJP-WINで、UTF-8で記述した場合は絵文字についてもUTF-8で |
| 771 |
|
記述します。<note>詳細は「絵文字について」の項を参照のこと</note> |
| 772 |
|
クライアントサイド(端末側)に送信する文字コードはShift_JISまたはUTF-8を指定することが可能です。<note>指定方法については「デバイス定義」の項を参照のこと。</note> |
| 773 |
|
mod_chxjによりサーバサイドコンテンツの文字コードから端末に送信する文字コードへと絵文字も含めて変換します。 |
| 774 |
|
POST/GET中のデータについても端末側文字コードからサーバサイドコンテンツの文字コードへと絵文字も含めて変換します。 |
| 775 |
|
|
| 776 |
|
|
| 777 |
|
<ol> |
| 778 |
|
<li>注意: Shift_JISでサーバサイドコンテンツを記述した場合はPOST/GETデータもShift_JISでサーバサイドコンテンツに渡されます。</li> |
| 779 |
|
<li>注意: EUCJP-WINでサーバサイドコンテンツを記述した場合はPOST/GETデータもEUCJP-WINでサーバサイドコンテンツに渡されます。</li> |
| 780 |
|
<li>注意: UTF-8でサーバサイドコンテンツを記述した場合はPOST/GETデータもEUCJP-WINでサーバサイドコンテンツに渡されます。</li> |
| 781 |
|
</ol> |
| 782 |
|
|
| 783 |
|
サーバサイドコンテンツの文字コードはChxjConvRuleディレクティブで指定した文字コードになります。 |
| 784 |
|
ChxjConvRuleにて矛盾が生じない限り、文字コードの混在も可能です。 |
| 785 |
|
|
| 786 |
|
</section> |
| 787 |
|
|
| 788 |
|
|
| 789 |
|
|
| 790 |
|
|
| 791 |
|
<!-- ================================================================================ --> |
| 792 |
|
<!-- --> |
| 793 |
|
<!-- 絵文字について --> |
| 794 |
|
<!-- --> |
| 795 |
|
<!-- ================================================================================ --> |
| 796 |
<section title="絵文字について"> |
<section title="絵文字について"> |
| 797 |
i-Mode用の絵文字を書いておけば、アクセスしたキャリアによって、mod_chxjが対応の絵文字に自動変換します。 |
i-Mode用の絵文字を書いておけば、アクセスしたキャリアによって、mod_chxjが対応の絵文字に自動変換します。 |
| 798 |
ソースに2byteのバイナリコードを直接書いても、10進参照文字列<note>16進参照文字列には対応していません</note>(&#XXX;の形)で書いても、どちらでも変換対象になります。 |
ソースに2byteのバイナリコードを直接書いても、10進参照文字列(&#XXX;の形)、16進参照文字列(&#xXXX;の形)で書いても、変換対象になります。 |
| 799 |
10進参照文字列で書いた場合は、mod_chxjにより、自動で2バイトコードに変換します。 |
10進参照文字列、16進参照文字列はmod_chxjにより自動で2バイトコードに変換されます。 |
| 800 |
|
<note>コンテンツをSJISで記述する場合には絵文字もSJISで、コンテンツをEUCJP-WINで記述する場合には絵文字もEUCJP-WINで、UTF-8で記述する場合には絵文字もUTF-8で記述する必要があります</note> |
| 801 |
|
|
| 802 |
<subsection title="絵文字変換定義"> |
<subsection title="絵文字変換定義"> |
| 803 |
絵文字の変換に関する動作を変えたい場合(例えば「ハートがあったら、AUの場合はスペードに」とか、「変換定義がおかしい」といった場合)は、 |
絵文字の変換に関する動作を変えたい場合(例えば「ハートがあったら、AUの場合はスペードに」とか、「変換定義がおかしい」といった場合)は、 |
| 804 |
emoji.xmlファイルを直接編集することによって定義を変更することが可能です。emoji.xmlはXMLファイルとなっていますので、vi等で簡単に定義を |
emoji.xmlファイルを直接編集することによって定義を変更することが可能です。emoji.xmlはXMLファイルとなっていますので、人によってはvi等で簡単に定義を |
| 805 |
変更することができます<note>厳密にはXMLになっていないので、日本語の記述はSJISでお願いします。</note>。 |
変更することができるかもしれません。 |
| 806 |
|
|
| 807 |
|
emoji.xmlは3つのパートに分かれています。1つ目はDoCoMo→DoCoMo/au/SoftBankの変換定義部。 |
| 808 |
|
2つ目はau→DoCoMoの変換定義部。3つ目はSoftBank→DoCoMoの変換定義部。 |
| 809 |
|
1つ目はサーバサイドコンテンから各キャリアの絵文字に変換する際に使用されます。 |
| 810 |
|
2つ目と3つ目はPOST/GETデータの変換に使用されます。 |
| 811 |
|
|
| 812 |
|
|
| 813 |
<br /> |
<br /> |
| 814 |
以下に、emoji.xmlファイルの一部を記します。 |
<!-- ================================================================================ --> |
| 815 |
|
<!-- DoCoMo->DoCoMo/au/SoftBank変換定義 --> |
| 816 |
|
<!-- ================================================================================ --> |
| 817 |
|
<subsection title="DoCoMo→DoCoMo/au/SoftBank変換定義"> |
| 818 |
|
以下に、emoji.xmlファイルの1つ目のパート、DoCoMo→DoCoMo/au/SoftBankの変換定義部を記します。 |
| 819 |
<program title="emoji.xml"> |
<program title="emoji.xml"> |
|
<?xml encoding="Shift_JIS" > |
|
|
|
|
| 820 |
<emoji> |
<emoji> |
| 821 |
<set> |
<set> |
| 822 |
<no>1</no> |
<no>1</no> |
| 823 |
<imode> |
<imode> |
| 824 |
<hex1>f8</hex1> |
<sjis-hex>f89f</sjis-hex> |
| 825 |
<hex2>9f</hex2> |
<sjis-dec>63647</sjis-dec> |
| 826 |
<string>&#63647;</string> |
<eucjp-hex>8ffca1</eucjp-hex> |
| 827 |
<description></description> |
<eucjp-dec>9436321</eucjp-dec> |
| 828 |
|
<unicode-hex>e63e</unicode-hex> |
| 829 |
|
<unicode-dec>58942</unicode-dec> |
| 830 |
|
<utf8-hex>ee98be</utf8-hex> |
| 831 |
|
<utf8-dec>15636670</utf-dec> |
| 832 |
|
<description>晴れ</description> |
| 833 |
</imode> |
</imode> |
| 834 |
<ezweb> |
<ezweb> |
| 835 |
<A>44</A> |
<A> |
| 836 |
<B>44</B> |
<no>44</no> |
| 837 |
<C>44</C> |
<sjis-hex>f660</sjis-hex> |
| 838 |
<D>44</D> |
<sjis-dec>63072</sjis-dec> |
| 839 |
|
<unicode-hex>e488</unicode-hex> |
| 840 |
|
<unicode-dec>58504</unicode-dec> |
| 841 |
|
<utf8-hex>eebda0</utf8-hex> |
| 842 |
|
<utf8-dec>15646112</utf-dec> |
| 843 |
|
</A> |
| 844 |
|
<B> |
| 845 |
|
<no>44</no> |
| 846 |
|
<sjis-hex>f660</sjis-hex> |
| 847 |
|
<sjis-dec>63072</sjis-dec> |
| 848 |
|
<unicode-hex>e488</unicode-hex> |
| 849 |
|
<unicode-dec>58504</unicode-dec> |
| 850 |
|
<utf8-hex>eebda0</utf8-hex> |
| 851 |
|
<utf8-dec>15646112</utf-dec> |
| 852 |
|
</B> |
| 853 |
|
<C> |
| 854 |
|
<no>44</no> |
| 855 |
|
<sjis-hex>f660</sjis-hex> |
| 856 |
|
<sjis-dec>63072</sjis-dec> |
| 857 |
|
<unicode-hex>e488</unicode-hex> |
| 858 |
|
<unicode-dec>58504</unicode-dec> |
| 859 |
|
<utf8-hex>eebda0</utf8-hex> |
| 860 |
|
<utf8-dec>15646112</utf-dec> |
| 861 |
|
</C> |
| 862 |
|
<D> |
| 863 |
|
<no>44</no> |
| 864 |
|
<sjis-hex>f660</sjis-hex> |
| 865 |
|
<sjis-dec>63072</sjis-dec> |
| 866 |
|
<unicode-hex>e488</unicode-hex> |
| 867 |
|
<unicode-dec>58504</unicode-dec> |
| 868 |
|
<utf8-hex>eebda0</utf8-hex> |
| 869 |
|
<utf8-dec>15646112</utf-dec> |
| 870 |
|
</D> |
| 871 |
</ezweb> |
</ezweb> |
| 872 |
<jphone> |
<softbank> |
| 873 |
<string>$Gj</string> |
<no>74</no> |
| 874 |
</jphone> |
<sjis-hex>476a</sjis-hex> |
| 875 |
|
<sjis-dec>116572776975</sjis-dec> |
| 876 |
|
<unicode-hex>e04a</unicode-hex> |
| 877 |
|
<unicode-dec>57418</unicode-dec> |
| 878 |
|
<utf8-hex>ee818a</utf8-hex> |
| 879 |
|
<utf8-dec>15630730</utf-dec> |
| 880 |
|
</softbank> |
| 881 |
</set> |
</set> |
| 882 |
|
・ |
| 883 |
|
・ |
| 884 |
|
・ |
| 885 |
|
・ |
| 886 |
|
</emoji> |
| 887 |
</program> |
</program> |
| 888 |
|
|
| 889 |
絵文字の定義は、<emoji>タグから</emoji>タグまでの間にあります。その中の要素を説明します。 |
絵文字の定義は、<emoji>タグから</emoji>タグまでの間にあります。その中の要素を説明します。 |
| 890 |
1つの絵文字につき、1つのセット(<set>タグから</set>タグまで)とし、キャリア毎の絵文字を定義しています。 |
1つの絵文字につき、1つのセット(<set>タグから</set>タグまで)とし、キャリア毎の絵文字を定義しています。 |
| 891 |
|
合計176セットあります。 |
| 892 |
|
|
| 893 |
<ol> |
<ol> |
| 894 |
<li><imode>要素<br /> |
<li><imode>要素<br /> |
| 895 |
まず、元となるi-Mode用の絵文字は、<imode>タグにはさまれた間に定義されています。 |
まず、元となるi-Mode用の絵文字は、<imode>タグにはさまれた間に定義されています。 |
| 896 |
<imode>要素は、2バイトコード要素(<hex1><hex2>)と、 |
<imode>要素は子にsjis、eucjp、utf8、unicodeのそれぞれ16進と10進表記データを保持します。 |
| 897 |
10進参照文字列要素(<string>)を保持していて、この2つの要素を変換元の値として使用します。 |
sjis-hexはShift_JISコードの16進表記、sjis-decはShift_JISコードの10進表記、eucjp-hexはEUCJP-WINの16進表記、eucjp-decはEUCJP-WINの10進表記、utf8-hexはUTF-8の16進表記、utf8-decはUTF-8の10進表記、unicode-hexはUNICODEの16進表記、unicode-decはUNICODEの10進表記となります。 |
| 898 |
アクセスしてきた端末が、i-Mode機であった場合で、かつCHTML中に10進参照文字列が絵文字として書かれている場合には、 |
サーバサイドコンテンツがSJISで記述されている場合はimode要素のsjis-hex、sjis-decを参照します。 |
| 899 |
<hex1><hex2>要素に定義されている値に置換します。 |
同様にがEUCJP-WINで記述されている場合はimode要素のeucjp-hex、eucjp-decを参照します。 |
| 900 |
|
UTF-8で記述されている場合はimode要素のutf8-hex、utf8-decを参照します。<br /> |
| 901 |
|
サーバサイドコンテンツのマッチするコードがimode要素の中に存在すれば、変換は同一set内のデータを使用して行われます。 |
| 902 |
</li> |
</li> |
| 903 |
<br /> |
<br /> |
| 904 |
<br /> |
<br /> |
| 905 |
<li><ezweb>要素<br /> |
<li><ezweb>要素<br /> |
| 906 |
アクセスしてきた端末が、AU機であった場合、<ezweb>要素に定義されている値に変換します。 |
アクセスしてきた端末が、AU機であった場合、<ezweb>要素に定義されている値に変換します。 |
| 907 |
<ezweb>要素は、<A>〜<D>要素を持っていて、それぞれAUの絵文字タイプA〜Dに対応していますので、 |
<ezweb>要素は、<A>〜<D>要素を持っていて、それぞれAUの絵文字タイプA〜Dに対応していますので、 |
| 908 |
もし、Dタイプの絵文字端末であったなら、<D>要素に定義されている値に変換します。ここで定義されている値は、 |
もし、Dタイプの絵文字端末であったなら、<D>要素の<no>に定義されている値に変換します。ここで定義されている値は、 |
| 909 |
HDML機の場合は、<b><IMG ICON="XX"></b>の"XX"の部分に当てはめられて、置換されます。 |
HDML機の場合は、<b><IMG ICON="XX"></b>の"XX"の部分に当てはめられて、置換されます。 |
| 910 |
XHTML機の場合は、<b><IMG LOCALSRC="XX"></b>の"XX"の部分に当てはめられて、置換されます。 |
XHTML機の場合は、<b><IMG LOCALSRC="XX"></b>の"XX"の部分に当てはめられて、置換されます。 |
| 911 |
|
同要素にはsjis-hex、sjis-dec、unicode-hex、unicode-dec、utf8-hex、utf8-decが有りますが、今のところ使用していません。 |
| 912 |
</li> |
</li> |
| 913 |
<br /> |
<br /> |
| 914 |
<br /> |
<br /> |
| 915 |
<li><jphone>要素<br /> |
<li><softbank>要素<br /> |
| 916 |
アクセスしてきた端末が、SoftBank/Vodafone/J-Phone端末であった場合、<jphone>要素に定義されている値に変換します。 |
アクセスしてきた端末が、SoftBank/Vodafone/J-Phone端末であった場合、<softbank>要素に定義されている値に変換します。 |
| 917 |
<jphone>要素は、<string>要素を保持していて、ここで定義されている値を直接使用します。 |
<softbank>要素は、上記要素と同様にsjis-hex、sjis-dec、unicode-hex、unicode-dec、utf8-hex、utf8-decを保持しています。 |
| 918 |
|
アクセスしてきた端末にはsjisを返す場合はsjis-hex、sjis-decの値を使用します。utf8を返す場合にはutf8-hex、utf8-decでは無くunicode-hex、unicode-decを返します。 |
| 919 |
|
SoftBank端末の場合は3G端末は基本的にUTF8を返すようにデバイス定義にて定義されています。UTF8で定義された場合でSoftBankの場合はUNICODEの参照文字列を返すように |
| 920 |
|
なっています。(問題回避のため) |
| 921 |
</li> |
</li> |
| 922 |
</ol><br /> |
</ol><br /> |
| 923 |
emoji.xmlに定義されていない絵文字で、変換したい絵文字がある場合には、このファイルに新たな定義を足せば、 |
emoji.xmlに定義されていない絵文字で、変換したい絵文字がある場合には、このファイルに新たな定義を足せば、 |
| 924 |
変換するようになります。 |
変換するようになります。<note>同一コード領域に割り当てる必要があるかもしれません</note> |
| 925 |
|
</subsection> |
| 926 |
|
|
| 927 |
|
|
| 928 |
|
<!-- ================================================================================ --> |
| 929 |
|
<!-- au->DoCoMo変換定義 --> |
| 930 |
|
<!-- ================================================================================ --> |
| 931 |
|
<subsection title="au→DoCoMo変換定義"> |
| 932 |
|
au->DoCoMo変換の定義は主にau端末からサーバサイドへのPOST/GETデータの変換に使用されます。 |
| 933 |
|
定義はemoji.xmlファイルの<ezweb2imode>タグではさまれたところに定義してあります。 |
| 934 |
|
<set>から</set>までの間が1絵文字を表現する部分になります。 |
| 935 |
|
<br /> |
| 936 |
|
以下に、emoji.xmlファイルの2つ目のパート、au→DoCoMo変換定義を以下に記します。 |
| 937 |
|
<program title="emoji.xml"> |
| 938 |
|
<ezweb2imode> |
| 939 |
|
<set> |
| 940 |
|
<no>1</no> |
| 941 |
|
<ezweb> |
| 942 |
|
<sjis-hex>F659</sjis-hex> |
| 943 |
|
<utf8-hex>eebd99</utf8-hex> |
| 944 |
|
</ezweb> |
| 945 |
|
<imode> |
| 946 |
|
<no>220</no> |
| 947 |
|
</imode> |
| 948 |
|
</set> |
| 949 |
|
・ |
| 950 |
|
・ |
| 951 |
|
・ |
| 952 |
|
</ezweb2imode> |
| 953 |
|
</program> |
| 954 |
|
<br /> |
| 955 |
|
<ol> |
| 956 |
|
<li><no>要素<br /> |
| 957 |
|
auで定義されている絵文字番号を保持します。 |
| 958 |
|
</li> |
| 959 |
|
<br /> |
| 960 |
|
<br /> |
| 961 |
|
<li><ezweb>要素<br /> |
| 962 |
|
<no>で定義された絵文字番号の実際にPOST/GETされてくる値を保持します。sjis-hexは端末がShift_JISの場合のPOST/GETデータ、utf8-hexは端末がUTF-8の場合のPOST/GETデータになっています。 |
| 963 |
|
POST/GETされたデータはこの要素に記述されたコードとマッチングされ、マッチした場合絵文字を特定します。 |
| 964 |
|
</li> |
| 965 |
|
<br /> |
| 966 |
|
<br /> |
| 967 |
|
<li><imode>要素<br /> |
| 968 |
|
<ezweb>要素でマッチした場合に参照されるEzWeb絵文字に対応するDoCoMo絵文字番号を保持します。mod_chxjによりDoCoMo絵文字に変換する場合に使用されます。 |
| 969 |
|
</li> |
| 970 |
|
<br /> |
| 971 |
|
<br /> |
| 972 |
|
</ol> |
| 973 |
|
</subsection> |
| 974 |
|
|
| 975 |
|
|
| 976 |
|
<!-- ================================================================================ --> |
| 977 |
|
<!-- SoftBank->DoCoMo変換定義 --> |
| 978 |
|
<!-- ================================================================================ --> |
| 979 |
|
<subsection title="SoftBank→DoCoMo変換定義"> |
| 980 |
|
SoftBank->DoCoMo変換の定義は主にSoftBank端末からサーバサイドへのPOST/GETデータの変換に使用されます。 |
| 981 |
|
定義はemoji.xmlファイルの<softbank2imode>タグではさまれたところに定義してあります。 |
| 982 |
|
<set>から</set>までの間が1絵文字を表現する部分になります。 |
| 983 |
|
<br /> |
| 984 |
|
以下に、emoji.xmlファイルの3つ目のパート、SoftBank→DoCoMo変換定義を以下に記します。 |
| 985 |
|
<program title="emoji.xml"> |
| 986 |
|
<softbank2imode> |
| 987 |
|
<set> |
| 988 |
|
<no> |
| 989 |
|
1 |
| 990 |
|
</no> |
| 991 |
|
<softbank> |
| 992 |
|
<webcode> |
| 993 |
|
4721 |
| 994 |
|
</webcode> |
| 995 |
|
<sjis-hex> |
| 996 |
|
f941 |
| 997 |
|
</sjis-hex> |
| 998 |
|
<utf8-hex> |
| 999 |
|
ee8081 |
| 1000 |
|
</utf8-hex> |
| 1001 |
|
</softbank> |
| 1002 |
|
<imode> |
| 1003 |
|
<no> |
| 1004 |
|
140 |
| 1005 |
|
</no> |
| 1006 |
|
</imode> |
| 1007 |
|
</set> |
| 1008 |
|
・ |
| 1009 |
|
・ |
| 1010 |
|
・ |
| 1011 |
|
・ |
| 1012 |
|
</softbank2imode> |
| 1013 |
|
</program> |
| 1014 |
|
<br /> |
| 1015 |
|
<ol> |
| 1016 |
|
<li><no>要素<br /> |
| 1017 |
|
SoftBankで定義されている絵文字番号を保持します。 |
| 1018 |
|
</li> |
| 1019 |
|
<br /> |
| 1020 |
|
<br /> |
| 1021 |
|
<li><softbank>要素<br /> |
| 1022 |
|
<no>で定義された絵文字番号の実際にPOST/GETされてくる値を保持します。webcodeは端末がShift_JISの場合でウェブコードを送信してくる場合のPOST/GETデータ、sjis-hexは端末がShift_JISの場合のPOST/GETデータ、utf8-hexは端末がUTF-8の場合のPOST/GETデータになっています。 |
| 1023 |
|
POST/GETされたデータはこの要素に記述されたコードとマッチングされ、マッチした場合絵文字を特定します。 |
| 1024 |
|
</li> |
| 1025 |
|
<br /> |
| 1026 |
|
<br /> |
| 1027 |
|
<li><imode>要素<br /> |
| 1028 |
|
<ezweb>要素でマッチした場合に参照されるSoftBank絵文字に対応するDoCoMo絵文字番号を保持します。mod_chxjによりDoCoMo絵文字に変換する場合に使用されます。 |
| 1029 |
|
</li> |
| 1030 |
|
<br /> |
| 1031 |
|
<br /> |
| 1032 |
|
</ol> |
| 1033 |
|
</subsection> |
| 1034 |
|
|
| 1035 |
|
|
| 1036 |
</subsection> |
</subsection> |
| 1037 |
</section> |
</section> |
| 1038 |
|
|
| 1039 |
|
<br /> |
| 1040 |
|
<br /> |
| 1041 |
|
|
| 1042 |
|
|
| 1043 |
|
|
| 1044 |
|
|
| 1045 |
|
|
| 1046 |
|
|
| 1047 |
|
<!-- ================================================================================ --> |
| 1048 |
|
<!-- --> |
| 1049 |
|
<!-- デバイス定義 --> |
| 1050 |
|
<!-- --> |
| 1051 |
|
<!-- ================================================================================ --> |
| 1052 |
<section title="デバイス定義 device_data.xml"> |
<section title="デバイス定義 device_data.xml"> |
| 1053 |
mod_chxjの動作を決定付ける重要な定義です。変換対象の端末は全て、device_data.xmlファイルに定義される必要があります。 |
mod_chxjの動作を決定付ける重要な定義です。変換対象の端末は全て、device_data.xmlファイルに定義される必要があります。 |
| 1054 |
定義されていない端末は、mod_chxjとしては、認識することができません。認識できない場合には、変換せずにそのまま出力します。ただし、Perl互換の正規表現によって定義できるため、正規表現の書き方によっては全ての機種に対応させることも可能です。 |
定義されていない端末は、mod_chxjとしては、認識することができません。認識できない場合には、変換せずにそのまま出力します。ただし、Perl互換の正規表現によって定義できるため、正規表現の書き方によっては全ての機種に対応させることも可能です。 |
| 1055 |
|
|
| 1056 |
|
<br /> |
| 1057 |
|
<subsection title="デバイス定義の要素"> |
| 1058 |
|
まず以下にデバイス定義を記します。 |
| 1059 |
|
<program title="device_data.xml"> |
| 1060 |
|
<devices> |
| 1061 |
|
<user_agent pattern="^KDDI-([^ ]+) UP.Browser/[^ ]+ .+"> |
| 1062 |
|
<device> |
| 1063 |
|
<device_id>HI21</device_id> |
| 1064 |
|
<device_name>C3001H</device_name> |
| 1065 |
|
<html_spec_type>XHTML_MOBILE_1_0</html_spec_type> |
| 1066 |
|
<width>120</width> |
| 1067 |
|
<heigh>130</heigh> |
| 1068 |
|
<gif>true</gif> |
| 1069 |
|
<jpeg>true</jpeg> |
| 1070 |
|
<png>true</png> |
| 1071 |
|
<bmp2>false</bmp2> |
| 1072 |
|
<bmp4>false</bmp4> |
| 1073 |
|
<color>4096</color> |
| 1074 |
|
<emoji_type>C</emoji_type> |
| 1075 |
|
<wp_width>120</wp_width> |
| 1076 |
|
<wp_heigh>116</wp_heigh> |
| 1077 |
|
<cache>9740</cache> |
| 1078 |
|
<dpi_width>72</dpi_width> |
| 1079 |
|
<dpi_heigh>72</dpi_heigh> |
| 1080 |
|
<charset>SJIS</charset> |
| 1081 |
|
</device> |
| 1082 |
|
・ |
| 1083 |
|
・ |
| 1084 |
|
・ |
| 1085 |
|
</user_agent> |
| 1086 |
|
<user_agent> |
| 1087 |
|
・ |
| 1088 |
|
・ |
| 1089 |
|
・ |
| 1090 |
|
</user_agent> |
| 1091 |
|
・ |
| 1092 |
|
・ |
| 1093 |
|
・ |
| 1094 |
|
</devices> |
| 1095 |
|
</program> |
| 1096 |
|
デバイス定義は<devices>タグに囲まれた中に記述します。 |
| 1097 |
|
devicesタグはuser_agentタグを子に持ちます。user_agentはpattern属性を保持し、端末のUser-Agentヘッダとマッチングされます。user_agentタグのpattern属性とマッチした場合には、そのuser_agentタグの子ノードであるdevice要素を1つづつ見に行きます。user_agentタグのpattern属性は正規表現となっていて、$1がデバイス識別IDになるように定義されていますので、$1とdevice_idタグの要素をマッチングします。マッチしたdeviceを該当端末とし、mod_chxjは該当端末用の変換処理を行います。 |
| 1098 |
|
|
| 1099 |
|
<br /> |
| 1100 |
|
以下に各タグについての説明を記します。 |
| 1101 |
|
<ol> |
| 1102 |
|
<li><b>devicesタグ</b><br /> |
| 1103 |
|
全ての要素は一組のdevicesタグに囲まれます。この中に存在する要素がデバイス定義になります。 |
| 1104 |
|
<br /> |
| 1105 |
|
<br /> |
| 1106 |
|
</li> |
| 1107 |
|
<li><b>user_agentタグ</b><br /> |
| 1108 |
|
User-Agentのパターンとそのパターンにマッチするdeviceを子ノードに持ちます。<br /> |
| 1109 |
|
pattern属性にはUser-AgentとマッチさせるPerl互換の正規表現を指定します<br /> |
| 1110 |
|
仮に"KDDI-CA31 UP.Browser/・・・"というUser-Agentを保持する端末からのアクセスがあった場合は、 |
| 1111 |
|
<user_agent pattern="^KDDI-([^ ]+) UP.Browser/[^ ]+ .+">にマッチしますが、<user_agent pattern="^UP.Browser/[^\-]+-([^ ]+) .+" > |
| 1112 |
|
にはマッチしません。 |
| 1113 |
|
よってmod_chxjは<user_agent pattern="^KDDI-([^ ]+) UP.Browser/[^ ]+ .+">の子ノードを処理対象と判断します。<br /> |
| 1114 |
|
pattern属性の要素である正規表現には必ず$1で後方参照できるようグルーピングが必要です。$1で後方参照する値は以下に記すdevice_idタグの値と比較されます。 |
| 1115 |
|
device_idとの比較の結果、等しい値であればそのdevice_idを保持するdeviceタグが該当端末として選択されます。<br /> |
| 1116 |
|
user_agentタグレベルではマッチしているもののdevice_idが期待する値を持っていない場合は、user_agentタグ中の最後のdeviceが選択されます。 |
| 1117 |
|
<br /> |
| 1118 |
|
<br /> |
| 1119 |
|
</li> |
| 1120 |
|
<li><b>deviceタグ</b><br /> |
| 1121 |
|
一台の端末を表現します。<br /> |
| 1122 |
|
子ノードとして以下を保持します。<br /> |
| 1123 |
|
<ol> |
| 1124 |
|
<li>device_id</li> |
| 1125 |
|
<li>device_name</li> |
| 1126 |
|
<li>html_spec_type</li> |
| 1127 |
|
<li>width</li> |
| 1128 |
|
<li>height</li> |
| 1129 |
|
<li>gif</li> |
| 1130 |
|
<li>jpeg</li> |
| 1131 |
|
<li>png</li> |
| 1132 |
|
<li>bmp2</li> |
| 1133 |
|
<li>bmp4</li> |
| 1134 |
|
<li>color</li> |
| 1135 |
|
<li>emoji_type</li> |
| 1136 |
|
<li>wp_width</li> |
| 1137 |
|
<li>wp_height</li> |
| 1138 |
|
<li>cache</li> |
| 1139 |
|
<li>dpi_width</li> |
| 1140 |
|
<li>dpi_height</li> |
| 1141 |
|
<li>charset</li> |
| 1142 |
|
</ol> |
| 1143 |
|
<br /><br /> |
| 1144 |
|
</li> |
| 1145 |
|
<li><b>device_idタグ</b><br /> |
| 1146 |
|
user_agentタグのpattern属性により生成された$1により後方参照される値と比較される値を保持します。通常DoCoMoであればUser-Agentの「機種名」部、 |
| 1147 |
|
auであればUser-Agentの「デバイスID」部、 SoftBankであれば、User-Agentの「機種名」部を記述します。 |
| 1148 |
|
<program title="例"> |
| 1149 |
|
<!-- DoCoMo F905iの場合 --> |
| 1150 |
|
<device_id>F905i</device_id> |
| 1151 |
|
|
| 1152 |
|
<!-- au W54Tの場合 --> |
| 1153 |
|
<device_id>TS3E</device_id> |
| 1154 |
|
|
| 1155 |
|
<!-- SoftBank 822SHの場合 --> |
| 1156 |
|
<device_id>822SH</device_id> |
| 1157 |
|
</program> |
| 1158 |
|
</li> |
| 1159 |
|
<li><b>device_nameタグ</b><br /> |
| 1160 |
|
mod_chxjでは本値をデバッグログ出力時にのみ使用します、人が見てわかりやすい名前を入力しておきます。 |
| 1161 |
|
device_idと混同しないように注意します。 |
| 1162 |
|
<program title="au W21CAの例"> |
| 1163 |
|
<device_name>W21CA</device_name> |
| 1164 |
|
</program> |
| 1165 |
|
</li> |
| 1166 |
|
<li><b>html_spec_typeタグ</b><br /> |
| 1167 |
|
端末のサポートするHTMLタイプを指定します。本タグの値によりHTML変換結果が変わります。 |
| 1168 |
|
指定できる値は以下のとおりです。大文字、小文字は区別しません。 |
| 1169 |
|
<table title="対応HTMLタイプ一覧"> |
| 1170 |
|
<thead> |
| 1171 |
|
<tr> |
| 1172 |
|
<td>値</td> |
| 1173 |
|
<td>意味</td> |
| 1174 |
|
</tr> |
| 1175 |
|
</thead> |
| 1176 |
|
<tbody> |
| 1177 |
|
<tr> |
| 1178 |
|
<td>CHTML_1_0</td> |
| 1179 |
|
<td>CHTML1.0対応機種の場合記述します。HTML変換結果はCHTML1.0になります。</td> |
| 1180 |
|
</tr> |
| 1181 |
|
<tr> |
| 1182 |
|
<td>CHTML_2_0</td> |
| 1183 |
|
<td>CHTML2.0対応機種の場合記述します。HTML変換結果はCHTML2.0になります。</td> |
| 1184 |
|
</tr> |
| 1185 |
|
<tr> |
| 1186 |
|
<td>CHTML_3_0</td> |
| 1187 |
|
<td>CHTML3.0対応機種の場合記述します。HTML変換結果はCHTML3.0になります。</td> |
| 1188 |
|
</tr> |
| 1189 |
|
<tr> |
| 1190 |
|
<td>CHTML_4_0</td> |
| 1191 |
|
<td>CHTML4.0対応機種の場合記述します。HTML変換結果はCHTML4.0になります。(0.9.0時点ではCHTML3.0と同じ)</td> |
| 1192 |
|
</tr> |
| 1193 |
|
<tr> |
| 1194 |
|
<td>CHTML_5_0</td> |
| 1195 |
|
<td>CHTML5.0対応機種の場合記述します。HTML変換結果はCHTML5.0になります。(0.9.0時点ではCHTML3.0と同じ)</td> |
| 1196 |
|
</tr> |
| 1197 |
|
<tr> |
| 1198 |
|
<td>CHTML_6_0</td> |
| 1199 |
|
<td>CHTML6.0対応機種の場合記述します。HTML変換結果はCHTML6.0になります。(0.9.0時点ではCHTML3.0と同じ)</td> |
| 1200 |
|
</tr> |
| 1201 |
|
<tr> |
| 1202 |
|
<td>CHTML_7_0</td> |
| 1203 |
|
<td>CHTML7.0対応機種の場合記述します。HTML変換結果はCHTML7.0になります。(0.9.0時点ではCHTML3.0と同じ)</td> |
| 1204 |
|
</tr> |
| 1205 |
|
<tr> |
| 1206 |
|
<td>XHTML_MOBILE_1_0</td> |
| 1207 |
|
<td>auのXHTML対応機種の場合に記述します。HTML変換結果はXHTMLになります。</td> |
| 1208 |
|
</tr> |
| 1209 |
|
<tr> |
| 1210 |
|
<td>HDML</td> |
| 1211 |
|
<td>auのHDML対応機種の場合に記述します。HTML変換結果はHDMLになります。</td> |
| 1212 |
|
</tr> |
| 1213 |
|
<tr> |
| 1214 |
|
<td>JHTML</td> |
| 1215 |
|
<td>SoftBankの端末の場合に記述します。HTML変換結果はSoftBank用HTMLになります。</td> |
| 1216 |
|
</tr> |
| 1217 |
|
</tbody> |
| 1218 |
|
</table> |
| 1219 |
|
</li> |
| 1220 |
|
<li><b>widthタグ</b><br /> |
| 1221 |
|
端末の横幅を指定します。 |
| 1222 |
|
</li> |
| 1223 |
|
<li><b>heightタグ</b><br /> |
| 1224 |
|
端末の縦幅を指定します。 |
| 1225 |
|
</li> |
| 1226 |
|
<li><b>gifタグ</b><br /> |
| 1227 |
|
端末がgif画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note> |
| 1228 |
|
</li> |
| 1229 |
|
<li><b>jpegタグ</b><br /> |
| 1230 |
|
端末がjpeg画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note> |
| 1231 |
|
</li> |
| 1232 |
|
<li><b>pngタグ</b><br /> |
| 1233 |
|
端末がpng画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note> |
| 1234 |
|
</li> |
| 1235 |
|
<li><b>bmp2タグ</b><br /> |
| 1236 |
|
端末がbmp2画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note> |
| 1237 |
|
通常はfalse。 |
| 1238 |
|
</li> |
| 1239 |
|
<li><b>bmp4タグ</b><br /> |
| 1240 |
|
端末がbmp4画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note> |
| 1241 |
|
通常はfalse。 |
| 1242 |
|
</li> |
| 1243 |
|
<li><b>colorタグ</b><br /> |
| 1244 |
|
端末の表示可能色数。 |
| 1245 |
|
</li> |
| 1246 |
|
<li><b>emoji_typeタグ</b><br /> |
| 1247 |
|
auの場合に指定します。au以外の場合は指定しても意味はありません。<br /> |
| 1248 |
|
設定できる値は以下のとおり。 |
| 1249 |
|
<table title="emoji_typeに設定できる値"> |
| 1250 |
|
<thead> |
| 1251 |
|
<tr> |
| 1252 |
|
<td>値</td> |
| 1253 |
|
<td>意味</td> |
| 1254 |
|
</tr> |
| 1255 |
|
</thead> |
| 1256 |
|
<tbody> |
| 1257 |
|
<tr> |
| 1258 |
|
<td>A</td> |
| 1259 |
|
<td>図柄タイプAをサポートしている場合に指定します。</td> |
| 1260 |
|
</tr> |
| 1261 |
|
<tr> |
| 1262 |
|
<td>B</td> |
| 1263 |
|
<td>図柄タイプBをサポートしている場合に指定します。</td> |
| 1264 |
|
</tr> |
| 1265 |
|
<tr> |
| 1266 |
|
<td>C</td> |
| 1267 |
|
<td>図柄タイプCをサポートしている場合に指定します。</td> |
| 1268 |
|
</tr> |
| 1269 |
|
<tr> |
| 1270 |
|
<td>D</td> |
| 1271 |
|
<td>図柄タイプDをサポートしている場合に指定します。</td> |
| 1272 |
|
</tr> |
| 1273 |
|
</tbody> |
| 1274 |
|
</table> |
| 1275 |
|
<note>大文字、小文字の区別なし</note> |
| 1276 |
|
</li> |
| 1277 |
|
<li><b>wp_widthタグ</b><br /> |
| 1278 |
|
壁紙の横幅を指定します。Mode=WPで画像生成する場合、この値が使用されます。 |
| 1279 |
|
</li> |
| 1280 |
|
<li><b>wp_heightタグ</b><br /> |
| 1281 |
|
壁紙の縦幅を指定します。Mode=WPで画像生成する場合、この値が使用されます。 |
| 1282 |
|
</li> |
| 1283 |
|
<li><b>cacheタグ</b><br /> |
| 1284 |
|
ブラウザのキャッシュサイズを指定します。 |
| 1285 |
|
</li> |
| 1286 |
|
<li><b>dpi_widthタグ</b><br /> |
| 1287 |
|
端末の解像度。 |
| 1288 |
|
</li> |
| 1289 |
|
<li><b>dpi_heightタグ</b><br /> |
| 1290 |
|
端末の解像度。 |
| 1291 |
|
</li> |
| 1292 |
|
<li><b>charsetタグ(0.9.0にて追加)</b><br /> |
| 1293 |
|
端末に送信する文字コードを指定します。指定できる値はSJISかUTF-8のみ。 |
| 1294 |
|
</li> |
| 1295 |
|
</ol> |
| 1296 |
|
<br /> |
| 1297 |
|
</subsection> |
| 1298 |
|
<br /> |
| 1299 |
</section> |
</section> |
| 1300 |
|
|
| 1301 |
|
|
| 1459 |
本機能は、Cookieシミュレート機能を有効にすると、自動で有効になります(将来的には変更予定)。 |
本機能は、Cookieシミュレート機能を有効にすると、自動で有効になります(将来的には変更予定)。 |
| 1460 |
</subsection> |
</subsection> |
| 1461 |
</section> |
</section> |
| 1462 |
|
|
| 1463 |
|
|
| 1464 |
|
|
| 1465 |
</body> |
</body> |
| 1466 |
</doc> |
</doc> |