|
Encode::JP::Emoji モジュールは、多数のエンコーディングを提供しています。 ここでも解説しています が、ちょっと複雑なので改めて紹介します。 Encode::JP::Emoji のx-utf8-e4u-*** と x-sjis-e4u-*** 系のエンコーディングは、 なお、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/10/24) | ブログのトップへ | 後記事(2010/10/27) >> |
| タイトル (本文) | ブログ名/日時 |
|---|
| 内 容 | ニックネーム/日時 |
|---|
| << 前記事(2010/10/24) | ブログのトップへ | 後記事(2010/10/27) >> |