2008年12月7日日曜日

[ruby] mobile_filter

文字コード変換機能/絵文字のキャリア間相互変換

JpmobileではControllerにmobile_filterを指定することで,
DoCoMo、Au、SoftBankの絵文字を透過的に扱うことができる。

class MyController
mobile_filter
end

また、半角・全角の自動変換を用いる場合は

class MyController
mobile_filter :hankaku=>true
end

と指定する。

Jpmobile内では、各キャリアの絵文字はUnicode私的領域上にマッピングされ、管理される。このとき、DoCoMo、Auは公式サイト記載のマッピングが使用される。ただしSoftBankはAuとの重複を避けるため、公式のマッピングに0x1000加算しU+F001以降に割り当てる。テンプレート内ではUTF-8でエンコードするか、数値文字参照の&xHHHH;形式で指定する。

絵文字は送出時に内蔵の変換表に基づいて変換され、携帯電話のエンコーディングにあわせて送出される。携帯電話から受信した絵文字は上記マッピングに基づいてUTF-8でparamsに渡される。

mobile_filterを有効にすると以下の処理が自動で行われる。

* DoCoMo、Auとの通信時にはShift_JIS、SoftBankとの通信時にはUTF-8が使用される。
* :hankaku=>true指定時は、カタカナは半角カナに変換されて送出される。携帯電話から送られた半角カナは全角カナに変換される。
* 絵文字はキャリアにあわせて変換されて送出される。
* 携帯電話からの絵文字はUnicode私的領域にマップされ、UTF-8でparamsに格納される。
--------------
http://jpmobile.rubyforge.org/rdoc/

0 件のコメント: