Kawanet Blog II

アクセスカウンタ

zoom RSS Encode::JP::Emoji の携帯絵文字コード変換マッピングまとめ

<<   作成日時 : 2010/10/24 21:12   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 18 / トラックバック 0 / コメント 0

Encode::JP::Emoji モジュールは、多数のエンコーディングを提供しています。
ここでも解説しています が、ちょっと複雑なので改めて紹介します。

Encode::JP::Emoji のx-utf8-e4u-***x-sjis-e4u-*** 系のエンコーディングは、
decode後(encode前)の内部の UTF-8 flagged string のエンコーディングとして、
Gmail など Google 内部で使われる絵文字コードを利用しています(Google 絵文字コード)。
この「Google 絵文字コード」をピボットにして、ドコモ・KDDI・ソフトバンクの絵文字と
Unicode 6.0 の絵文字を相互に変換することができます。
http://kawa.at.webry.info/201010/article_1.html

なお、Encode::JP::Emoji は Pure Perl 実装なので、レンタルサーバなどでも
lib ディレクトリ以下のファイルをコピーするだけで手軽にご利用いただけます。
Shift_JIS (CP932) の変換処理本体は Encode 本来の動作を借りているので、
Pure Perl だからといって処理速度が遅いということもありません。

(1)携帯キャリア各社の独自Shift_JISコード 〜 各社UTF-8コード変換


最初のグループは、携帯キャリア各社が PUA 領域に定義している絵文字コードを
UTF-8 フラグ ON で使うためのエンコーディングです。
図の上下の四角が UTF-8 フラグ OFF の外部入出力用の octets コード、
真ん中が UTF-8 フラグ ON のアプリ内部用の string コードです。


DoCoMo・KDDI・SoftBank 各社の Shift_JIS・UTF-8 コードに対応しています。

(2)携帯キャリア各社の独自コード 〜 Google絵文字コード変換


2番目のグループは、Gmail などで Google が利用している絵文字コードを
UTF-8 フラグ ON で使うためのエンコーディングです。
Google 絵文字コードを媒介にして、携帯キャリア各社の絵文字の相互変換が可能です。
変換先に存在しない文字があれば、基本的に、似ている絵文字に変換します。


Google 絵文字コードは、U+FE000 以降の私用領域 PUA を利用します。

(3)Unicode 6.0/各社mix絵文字コード 〜 Google絵文字コード変換


3番目のグループ(上段)は3種類あります。

1つ目の x-utf8-e4u-unicode は、前のポスト で紹介した Unicode 6.0 絵文字と
Google 絵文字コードの変換です。これも Google 絵文字コードを媒介とすることで、
Unicode 6.0 絵文字と携帯キャリア各社の絵文字の相互変換が可能になります。

2つ目の x-utf8-e4u-google は、Google 絵文字コード(UTF-8 フラグ OFF)で、
他とエンコーディングと同様の名前を揃えるために提供されています。
(変換処理は行ないません)

3つ目の x-utf8-e4u-mixed は少し特殊です。
DoCoMo・KDDI・SoftBank 各社の絵文字コード領域(PUA)をミックスさせて使うことで、
どのキャリアの絵文字も3バイトUTF-8内で表現できるようにしたエンコーディングです。
表示などでは基本的に使えませんから、データベース等での保存用を想定しています。
バージョン 5.5.3 以前の MySQL は4バイトUTF-8に対応していないので、
Google 絵文字コードや Unicode 6.0 絵文字コードはデータベースに保存できません。
表示時は、グループ1の各社の絵文字コードに変換して出力してください。


4番目のグループ(下段)は、絵文字に対応しない環境のためのエンコーディングです。
Shift_JIS 版の x-sjis-e4u-none と、UTF-8 版の x-utf8-e4u-none があります。
文字列中にある全ての絵文字について、それぞれ fallback 関数を呼び出します。
encode() 関数の第3引数や from_to() 関数の第4引数の CHECK に、
FB_EMOJI_TEXT を指定することで、絵文字→日本語表記などへの変換を行ないます。
PC など、絵文字が表示できない環境に出力する際にご利用いただくエンコーディングです。
詳細は こちらのドキュメント を参照して下さい。

今後の方向性


現在の Encode::JP::Emoji は Google 絵文字コードを変換の中心に据えています。
今回、Unicode 6.0 で絵文字コードが標準化されたのに合わせて、
Unicode 6.0 と携帯キャリアの絵文字や mixed との相互変換のエンコーディングの
追加も検討しました(一部は実装しました)が、今回の 0.60 リリースでは未公開です。

Web アプリの内部処理用エンコーディング(UTF-8 フラグ ON)は、本来なら、
標準仕様である Unicode 6.0 のコードを使いたいところですが、前のポストでも書いた通り
Unicode 6.0 絵文字コードは一部絵文字コードが存在しないなど不完全な代物で、
現実的には Web アプリ内部コードとしては、残念ながら使える状態にありません。

Web アプリ内部処理やデータベースへの格納では、Google 絵文字コード(4バイト)や
携帯キャリア各社 mixed 絵文字コード(3バイト)を使うのが現実的でしょう。

● 関連記事


Encode::JP::Emoji - emoji4unicode ベースの絵文字変換 Perl モジュール
http://mtl.recruit.co.jp/blog/2009/07/encodejpemoji_emoji4unicode_pe.html
Encode::JP::Emoji - emoji4unicode ベースの絵文字変換モジュール
http://kawa.at.webry.info/200907/article_1.html
FB_EMOJI_GMAIL、FB_EMOJI_TYPECAST / PC向け絵文字アイコン画像表示
http://kawa.at.webry.info/200907/article_2.html
YAPC::Europe 2009 レポート(3) 発表してきました
http://mtl.recruit.co.jp/blog/2009/08/yapceurope_2009_3.html
Unicode 6.0絵文字対応Encode::JP::Emoji 0.60をリリース(Perl)
http://kawa.at.webry.info/201010/article_1.html
Encode::JP::Emoji の携帯絵文字コード変換マッピングまとめ
http://kawa.at.webry.info/201010/article_2.html
 
 

日経ソフトウエア 2010年 12月号 [雑誌]
日経BP社
2010-10-23

amazon.co.jpで買う
Amazonアソシエイト by 日経ソフトウエア 2010年 12月号 [雑誌] の詳しい情報を見る / ウェブリブログ商品ポータル

《川崎も寄稿してます!》


テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 18
なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
ナイス ナイス ナイス ナイス
驚いた 驚いた
面白い 面白い
ガッツ(がんばれ!) ガッツ(がんばれ!)
かわいい かわいい

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Encode::JP::Emoji の携帯絵文字コード変換マッピングまとめ Kawanet Blog II/BIGLOBEウェブリブログ
文字サイズ:       閉じる