DoCoMoは基本的に何もしないで良いと思っていたが、サーバサイドの文字コードが任意に指定できるため、やはり変換かけないとダメ。
定義ファイルを作ってみて全体設計の変更が必要になったので以下に書いておく。
- クライアントの文字コードを特定する
- クライアントの機種を特定する
- 絵文字をメタ絵文字に変換する。
- 文字コードを変換する。
- メタ絵文字を絵文字に変換する。
- サーバサイドに渡す
ここでも内部的にはメタ絵文字を使用して変換かけないとダメと気づいた。
それでは、DoCoMoの定義ファイルを作ってみる。
・・・と思ったけど、DoCoMoの定義は既にある定義でまかなえるのでやらなくて良いことが判明。。
ということで次はSoftBankの定義をする。
SoftBank → imodeの変換をするための定義考える。
必要なのは、SoftBank機から送られてくる文字コードUTF-8の場合とSJISの場合、
そして送られてきた文字コードにひもづくDoCoMoの絵文字番号。
ということでできたxmlを以下に記す。
<softbank2imode>
<set>
<no>1</no>
<softbank>
<sjis-hex>1b2447210f</sjis-hex>
<utf8-hex>ee8081</utf-hex>
</softbank>
<imode>
<no>140</no>
</imode>
</set>
<set>
<no>2</no>
<softbank>
<sjis-hex>1b2447220f</sjis-hex>
<utf8-hex>ee8082</utf-hex>
</softbank>
<imode>
<no>140</no>
</imode>
</set>
・・・略・・・
<set>
<no>3</no>
<softbank>
<sjis-hex>1b2447230f</sjis-hex>
<utf8-hex>ee8083</utf-hex>
</softbank>
<imode>
<no>149</no>
</imode>
</set>
</softbank2imode>
これをetc/emoji.xmlの中に追記し、
読み込みロジックの追加とデータ構造追加し、
変換ルーチンを追加すればOKのはず。
。
0 コメント:
コメントを投稿