jpmobileを使って、au/softbankでも、controller内で、ドコモ絵文字にマッピング済みのutf8値を得る方法

非常にわかりにくいタイトルですが、
ユーザがテキストフォームに絵文字を入れて送ってきたときの話しです。

以下のようなコードがあった際に、

class HogeController < ApplicationController
  mobile_filter

  def hoge
    # 例えば、ドコモの「晴れ」に対応する絵文字は、jpmobileの
    # before_filterを通った、actionの時点で、
    #   docomo   : \xEE\x98\xBE
    #   au       : \xEE\x92\x88
    #   softbank : \xEF\x81\x8A
    # となっている
  end
end

そのままhogeアクションのviewで表示するなら、jpmobileのafter_filterがかかって、


docomo : \xF8\x9F (sjis)
au : \xF8\x9F (sjis)
softbank : \xEE\x98\xBE (utf8)

になるのですが、hogeアクションの中で、au/softbankでもdocomoの値を手に入れるにはどうしたらよいでしょうか。


一応、下記の方法で手に入れることが出来たので、メモっておきます。

class HogeController < ApplicationController
  mobile_filter

  def hoge
    # strが変換したい文字列とすると
    str = Jpmobile::Emoticon::utf8_to_unicodecr(str)
    str = Jpmobile::Emoticon::unicodecr_to_external(str, Jpmobile::Emoticon::CONVERSION_TABLE_TO_DOCOMO, false)
    # これで strは
    #   docomo   : \xEE\x98\xBE
    #   au       : \xEE\x98\xBE
    #   softbank : \xEE\x98\xBE
    # となります
  end
end

単純に、jpmobileのafter_filterをかけているだけですが、
unicodecr_to_externalの3つ目の引数をfalseにしてutf8-->sjis変換を行なわないようにしています