[Seasar-user:20049] Re: [mobylet] 絵文字について質問です

Shin Takeuchi [E-MAIL ADDRESS DELETED]
2010年 8月 8日 (日) 01:13:53 JST


decoyさん

竹内(stakeuchi)です。

結構マニアックなところの質問に感激しております。
#誰もそんなところ突っ込まないだろうと思っていたので。。。

ご存じの通り、Javaは一旦内部でUNICODEに変換する言語ですが
イメージ的には
入力byte(パラメータ)⇒内部char⇒出力byte(レスポンス)
という感じに変換処理が行われています(あくまでイメージです)

「0xE488」というコードはSJISで言う「0xF660」をUNICODE(UTF-16)で表した形ですが
通常のUNICODE変換を利用すると
0xF660⇒0xE488⇒0xF660
になるでしょ?というのがauの絵文字「晴れ」のイメージだと思います。

mobyletではこの矢印にあたる文字コード変換部分を
全て自作で作っているため
0xF660⇒0xE92C⇒0xF660
という変換を行っています。
このため、xmlにはE92Cと書かれています。


では何故こうしたかという話になるかと思いますが
ドコモの絵文字(UNICODE)表現領域が標準で
0xE63E〜0xE757
ソフトバンクの絵文字(UNICODE)表現領域が標準で
0xE001〜0xE51F
となっています。

auは標準で1バイト目が
0xE4 0xE5 0xEA 0xEBの帯域を使っていて
ソフトバンクの帯域に被っているのが分かると思います。
(表示系のコードポイントに絞ってます)


UNICODEのコードポイントが被っているということは
もし、そのままデータベースに絵文字入りの文字列を格納すると
どのキャリアのどの絵文字かが分からなくなるため
mobyletではコードポイントでキャリアが判別出来るように
auの絵文字のみ、コードポイントを独自に変更しまして
実際、mobyletではauの絵文字の帯域を
0xE901〜0xEB87
に持ち、3キャリアでコードポイントが被らないようにしています。


なぜauのコードポイントを変更したかと言うと
以下のような観点から来ています。
・ドコモはi絵文字のツール利用も考えられるため、そのまま使えるようにしかたった
・ソフトバンクはmobyletの標準でUTF-8レスポンスのため、変えたくなかった
・auは標準で帯域が0xE4,E5系と0xEA,EB系に分断されていたため、気持ち悪かった


というわけで独自のマッピングに切り替えた訳ですが
実際のマッピング表は公開していません。
(申し訳ございません)

内部ではエクセルシートによる絵文字画像とコードポイントの管理シート
(XMLをマクロで吐き出すようなもの)があるのですが
会社の資産として保管させて頂いているという状況です。


実際のところはXMLを見て頂くことで
ある程度のマッピングはご理解頂けると思っていまして
(命名規則はキャリアの公式のものとほとんど同一にしているので)
もしも無いと困るような用途が御座いましたら
ご一報頂けますと幸いです。
#ドキュメントとしての整備タスクを上げることは可能です。
#MobyletAuCodeMapクラスを見て頂いても良いかもしれません。


よろしくお願い致します。


2010年8月7日13:17  <[E-MAIL ADDRESS DELETED]>:
> お世話になります。
> decoyです。
>
> 絵文字に関して2点ほど質問させて頂きたく思います。
>
>
> ・auの絵文字コードについて
> 例えば「晴れ」の絵文字の場合、UNICODEでdocomoならE63E、softbankならE04A、ということで
> mobylet.emojistocker.*.xmlにも、そのように記述されており、理解は出来るのですが
> auの場合、上記の絵文字であれば、UNICODEでE488となるはずですが、
> なぜか、E92Cとしてxmlファイルに記述されております。
> ですが、上記の絵文字が入ったページをFireMobileSimulatorで見るとE488として表示されております。
>
> 他にもauの絵文字コードについては下記のページに記載されているような絵文字コードとは
> 異なる絵文字コードがxmlファイルに記述されていますが、これはどういった理由からなのか、
> (なぜ、E92Cと記述する事でE488を出力しているのか)ご教授頂けますでしょうか。
>
>
>
> ・mobyletの絵文字マッピング表はありますか?
>
> mobyletの絵文字マッピング表のようなもの(docomoでこの絵文字の場合はauではこの絵文字を表示するというような事が記載された表)ってありますでしょうか。
>
> いろいろ検索して探してみたところ、下記のような表が見つかりましたが
> 下記の表に基づいて作成されているという認識で宜しいでしょうか。
> (xmlファイルと下記サイトの表を比較したところ、そのように見えましたがどうでしょうか?)
>
> mobylet.emojistocker.docomo.xml
>> http://trialgoods.com/emoji/?career=i&page=all
>
> mobylet.emojistocker.au.xml
>> http://trialgoods.com/emoji/?career=au&page=all
>
> mobylet.emojistocker.softbank.xml
>> http://trialgoods.com/emoji/?career=sb&page=all
>
>
> もし、そうではなく、このマッピング表に基づいて作成している
> というものがあれば、ご教授頂けますでしょうか。
>
>
> 以上、お手数ですが、宜しくお願い致します。
>
> // decoy
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>



-- 
―Lei Hau'oli Co.,Ltd.―――――――――――

 竹内 真(TAKEUCHI SHIN)
 Tel: 080-3300-9888
 Mail: [E-MAIL ADDRESS DELETED]

 株式会社Lei Hau'oli
 〒135-0064 東京都江東区青海2丁目7-4 THE SOHO 934
 Tel: 03-6457-1041 Fax:03-6457-1042


Seasar-user メーリングリストの案内