絵文字変換

MobaSiFの絵文字処理関係を見てみる。今回はフォームで絵文字が入力されて送信されるケースを考える。
各キャリアで絵文字を送信すると、絵文字は下記のような文字コードになる。

MobaSiFは、これらを独自の形式で扱う。送信されてきた絵文字は、Mcode::any2u()で変換される。実質は、docomoauの絵文字コードは、お互いにかぶらないコード体系なのでスルーされる。SoftBankの絵文字のみ変換処理が行なわれる。

SoftBankの絵文字変換

SoftBankには、v-utf8の他に「webコード」というコード体系もある。このコード体系は、16進数表記で

1B 24 {C1} {C2} 0F

という形式になっている。

MobaSiFでは、フォームから送信されてくるv-utf8の絵文字をwebコードに変換し、webコードの{C1}{C2}の部分を取り出し、

0B {C1} {C2}

という形式に変換する。
これを「v-sjis-u」と呼ぶ。

SoftBankの絵文字変換関数

SoftBankの絵文字は、v-utf-8→webコード→v-sjis-uと変換されていく。
ここで
「v-utf-8→webコード」は、SoftBankEncode::utf8-to-sjis()
「webコード→v-sjis-u」は、Mcode::any2u()
で行なわれる。