use Encode::JP::Mobile; Perl  標準の機能を使った絵文字の相互変換 株式会社モードツー 冨田 尚樹  <tomita@cpan.org> http://e8y.net/ YAPC::Asia 2008 2008/5/16
アジェンダ <ul><li>Perl  とモバイル </li></ul><ul><li>Encode::JP::Mobile  とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~...
<ul><li>最新版( svn HEAD )の Encode::JP::Mobile を知らない人もいると思うので、基本的な内容を扱います </li></ul><ul><li>Encode::JP::Mobile can help forei...
アジェンダ <ul><li>Perl  とモバイル ← </li></ul><ul><li>Encode::JP::Mobile  とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展...
昨年  2007 年末 出典: 電気通信事業者協会 http://www.tca.or.jp/japan/database/daisu/
<ul><li>携帯契約者数、1億を超える </li></ul><ul><li>日本の人口は 1億 2 千万くらい </li></ul>日本、どんだけ携帯好き もちろん複数台所有している個人・会社があるでしょうが
とりわけ <ul><li>中学生・高校生 </li></ul><ul><li>携帯によるインターネット利用 </li></ul>2007 年 09 月 バンダイ・朝日新聞 http://www.bandai-net.com/corporatio...
そんなわけで <ul><li>携帯向けウェブサービス </li></ul><ul><li>楽しい </li></ul><ul><li>ビジネスにも </li></ul>
ちなみに <ul><li>SNS </li></ul>YAPC::Asia Gold Sponsors! ケータイ白書 2008
<ul><li>Perl  は日本のモバイル業界を支えている! と言っても過言ではない </li></ul>この機会に言いたいこと
モバイル系の課題 <ul><li>キャリアのブラウザ仕様の違い </li></ul><ul><li>絵文字 </li></ul><ul><li>ページあたりの表示メモリ制限 </li></ul><ul><li>Flash Lite </li><...
モバイル系の課題 <ul><li>キャリアのブラウザ仕様の違い </li></ul><ul><li>絵文字 </li></ul><ul><li>ページあたりの表示メモリ制限 </li></ul><ul><li>Flash Lite </li><...
モバイル系の課題 <ul><li>キャリアのブラウザ仕様の違い </li></ul><ul><li>絵文字 </li></ul><ul><li>ページあたりの表示メモリ制限 </li></ul><ul><li>Flash Lite </li><...
Perl ハッカーなら <ul><li>モジュールで解決しよう </li></ul>
アジェンダ <ul><li>Perl  とモバイル </li></ul><ul><li>Encode::JP::Mobile  とは ← </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展...
ちなみに <ul><li>今回の YAPC はモバイルネタ多いですね </li></ul>←  今ココ
TMTOWTDI <ul><li>Encode::JP::Mobile  は、 絵文字周りの課題を扱うモジュールです </li></ul><ul><li>miyagawa さん作 </li></ul><ul><li>#mobilejp  で発展...
Encode::JP::Mobile でやりたいこと
絵文字を使うと <ul><li>1.画像を使わないで (サイズを抑えつつ) キラキラにできる </li></ul>株式会社ビジュアルワークス http://t-gate.tv/  お世話になっております m(_ _)m
<ul><li>2.携帯ユーザーの大事な表現方法 </li></ul>株式会社モバイルファクトリー http://wassr.jp/
が、各社独自仕様 <ul><li>詳しくは </li></ul><ul><ul><li>http://coderepos.org/share/wiki/Mobile/Encoding  とか。少し触らないと忘れる </li></ul></ul>...
絵文字対応 <ul><li>1 キャリアだけであれば </li></ul>アプリ DB ケータイ
アプリ DB ・ 3 キャリアで共通データを使いたい ・テンプレートや DB は一つの文字コードにしたい  (utf-8 とか ) ・ アプリ内では、文字はフラグつけて扱いたい ドコモ au などなど
<ul><li>キャリアが行ない始めた絵文字の相互変換 </li></ul>あと、どうせならこれもやりたい
期待する形 共通なもの ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの ...
Encode::JP::Mobile  の解決法 <ul><li>Encode  を使う </li></ul>softbank の絵文字交じりの utf-8 unicode decode ドコモの絵文字交じりの sjis au の絵文字交じりの...
Encode::JP::Mobile  が気持ちいい理由 <ul><li>1. Encode  を利用 </li></ul><ul><ul><li>Perl  標準のエンコーディング操作モジュール </li></ul></ul><ul><ul>...
Encode::JP::Mobile  が気持ちいい理由 <ul><li>2.独特なことをしていない </li></ul><ul><ul><li>Encode::  の範囲のみ </li></ul></ul><ul><ul><li>shift_...
マッピングについて補足 <ul><ul><li>shift_jis ← -> unicode  のマッピング </li></ul></ul>
decode ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8...
絵文字以外 ドコモ絵文字 au 絵文字 softbank 絵文字 unicode PRIVATE USE AREA 詳細 http://subtech.g.hatena.ne.jp/miyagawa/20071112/1194865208 絵文...
というわけで、 Encode::JP::Mobile <ul><li>メイン機能 </li></ul><ul><ul><li>1.エンコーディングの提供 (当初) </li></ul></ul><ul><ul><li>2.絵文字のキャリア間変換...
アジェンダ <ul><li>Perl  とモバイル </li></ul><ul><li>Encode::JP::Mobile  とは </li></ul><ul><li>使い方 ~基本編~ ← </li></ul><ul><li>使い方 ~発展...
簡単です use Encode; # shift_jis の「あああ」  my $input = &quot;x82xa0x82xa0x82xa0&quot;; #  該当エンコーディングで decode する… my $text = deco...
use Encode; use Encode::JP::Mobile; # エンコーディングが追加される
Encode::JP::Mobile  が追加する エンコーディング名 <ul><li>x-sjis-docomo (x-sjis-imode) </li></ul><ul><li>x-sjis-kddi-auto (x-sjis-ezweb-...
use Encode; use Encode::JP::Mobile; # DoCoMo で、 chaset=shift_jis のページのフォームから #  「あ  」 を送信  my $input = &quot;x82xa0xF8x9F&...
自由自在に unicode 'x-sjis-docomo'  で decode ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 DB とか 'utf-8'  で  encode...
unicode ドコモのへ sjis として au へ sjis として softbank へ utf-8 DB とか 'utf-8'  で decode 'x-sjis-docomo'  で encode 'x-sjis-kddi-auto'...
どのエンコーディングを使うか <ul><li>HTTP::MobileAgent::Plugin::Charset </li></ul>use HTTP::MobileAgent; use HTTP::MobileAgent::Plugin::...
キャリア間変換の話 A : 絵文字 -> 絵文字 B : 絵文字 -> 文字表現 (>3<) とか [ エビフライ ]
<ul><li>A  は何もしなくて ok </li></ul><ul><li>B  について </li></ul><ul><ul><li>ないものは  encode()  失敗します </li></ul></ul><ul><ul><li>->...
encode() 失敗するものについては、 <ul><li>encode 第三引数で制御可能 </li></ul>use Encode; use Encode::JP::Mobile; my $text = &quot;x{EF60}x{ECA...
コールバックを指定可能 use Encode; use Encode::JP::Mobile; my $text = &quot;x{EF60}x{ECA2}&quot;; #  print encode('x-sjis-docomo', $t...
Encode::JP::Mobile::FB_CHARACTER <ul><li>というカスタムコールバック付属 </li></ul>use Encode; use Encode::JP::Mobile; my $text = &quot;x{...
アジェンダ <ul><li>Perl  とモバイル </li></ul><ul><li>Encode::JP::Mobile  とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~...
今回は基本のものだけ扱いましたが <ul><li>絵文字だけ除去したい </li></ul><ul><li>PC  向けに絵文字を画像で表示したい </li></ul><ul><li>といったこともできて、 Encode::JP::Mobile...
お役立ち <ul><li>dat   -  モジュールが内部的に利用 </li></ul><ul><li>lib   -  モジュール </li></ul><ul><li>t   -  テスト </li></ul><ul><li>tools  ...
お役立ち <ul><li>ソース  ./tools/* </li></ul><ul><ul><li>キャリアのページをスクレイピングして ./ucm/*  や ./dat/*  を生成 </li></ul></ul><ul><li>ソース  ....
アジェンダ <ul><li>Perl  とモバイル </li></ul><ul><li>Encode::JP::Mobile  とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~...
ステータス <ul><li>いちおう still development </li></ul><ul><li>だいぶ落ち着きましたが </li></ul><ul><li>TODO </li></ul><ul><ul><li>clouder   ...
Catalyst  で使う <ul><li>Catalyst::Plugin::Unicode::Encoding::MobileAgent  http://coderepos.org/share/browser/lang/perl/Catal...
インストール <ul><li>CPAN  は  v0.24 (相互変換がない時代) </li></ul><ul><ul><li>もし  http://search.cpan.org/dist/Encode-JP-Mobile/  が  v0.2...
アジェンダ <ul><li>Perl  とモバイル </li></ul><ul><li>Encode::JP::Mobile  とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~...
モバイルまわりはまだまだモジュール化・ノウハウ共有の余地あり <ul><li>#mobilejp@irc.freenode.net </li></ul><ul><ul><li>私は遅レスですすみません </li></ul></ul><ul><u...
ありがとうございました <ul><li>Encode::JP::Mobile  はいけてるモジュール </li></ul><ul><li>モバイル周りのノウハウ共有を進めよう </li></ul>
Upcoming SlideShare
Loading in...5
×

use Encode::JP::Mobile;

8,981

Published on

Perl標準の機能を使った絵文字の相互変換

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
  • 早速ですが、最新版をsvn HEAD ではなく CPANからgetできるようになりま した!

    http://search.cpan.org/dist/Encode-JP-Mobile/

    $ sudo cpan Encode::JP::Mobile
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
8,981
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
36
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

use Encode::JP::Mobile;

  1. 1. use Encode::JP::Mobile; Perl 標準の機能を使った絵文字の相互変換 株式会社モードツー 冨田 尚樹 <tomita@cpan.org> http://e8y.net/ YAPC::Asia 2008 2008/5/16
  2. 2. アジェンダ <ul><li>Perl とモバイル </li></ul><ul><li>Encode::JP::Mobile とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~ </li></ul><ul><li>ステータス / インストール </li></ul><ul><li>さいごに </li></ul>
  3. 3. <ul><li>最新版( svn HEAD )の Encode::JP::Mobile を知らない人もいると思うので、基本的な内容を扱います </li></ul><ul><li>Encode::JP::Mobile can help foreign web developers certainly! </li></ul>
  4. 4. アジェンダ <ul><li>Perl とモバイル ← </li></ul><ul><li>Encode::JP::Mobile とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~ </li></ul><ul><li>ステータス / インストール </li></ul><ul><li>さいごに </li></ul>
  5. 5. 昨年 2007 年末 出典: 電気通信事業者協会 http://www.tca.or.jp/japan/database/daisu/
  6. 6. <ul><li>携帯契約者数、1億を超える </li></ul><ul><li>日本の人口は 1億 2 千万くらい </li></ul>日本、どんだけ携帯好き もちろん複数台所有している個人・会社があるでしょうが
  7. 7. とりわけ <ul><li>中学生・高校生 </li></ul><ul><li>携帯によるインターネット利用 </li></ul>2007 年 09 月 バンダイ・朝日新聞 http://www.bandai-net.com/corporation/release/release.php?id=946 勉強しろよ
  8. 8. そんなわけで <ul><li>携帯向けウェブサービス </li></ul><ul><li>楽しい </li></ul><ul><li>ビジネスにも </li></ul>
  9. 9. ちなみに <ul><li>SNS </li></ul>YAPC::Asia Gold Sponsors! ケータイ白書 2008
  10. 10. <ul><li>Perl は日本のモバイル業界を支えている! と言っても過言ではない </li></ul>この機会に言いたいこと
  11. 11. モバイル系の課題 <ul><li>キャリアのブラウザ仕様の違い </li></ul><ul><li>絵文字 </li></ul><ul><li>ページあたりの表示メモリ制限 </li></ul><ul><li>Flash Lite </li></ul><ul><li>端末 ID での認証 </li></ul><ul><li>IP 帯域チェック </li></ul><ul><li>QR コード </li></ul><ul><li>mailto: の仕様 </li></ul><ul><li>迷惑メール拒否機能対策 </li></ul><ul><li>迷惑メール業者認定回避 </li></ul><ul><li>デコメ </li></ul>
  12. 12. モバイル系の課題 <ul><li>キャリアのブラウザ仕様の違い </li></ul><ul><li>絵文字 </li></ul><ul><li>ページあたりの表示メモリ制限 </li></ul><ul><li>Flash Lite </li></ul><ul><li>端末 ID での認証 </li></ul><ul><li>IP 帯域チェック </li></ul><ul><li>QR コード </li></ul><ul><li>mailto: の仕様 </li></ul><ul><li>迷惑メール拒否機能対策 </li></ul><ul><li>迷惑メール業者認定回避 </li></ul><ul><li>デコメ </li></ul><ul><li>本文なし写真添付メール </li></ul><ul><li>Cookie </li></ul><ul><li>簡易位置情報 </li></ul><ul><li>リダイレクト回数制限 </li></ul><ul><li>GPS </li></ul><ul><li>Java アプリ </li></ul><ul><li>SSL は高いのしかだめだったり </li></ul><ul><li>フルブラウザ </li></ul><ul><li>着メロ </li></ul><ul><li>待ち受け </li></ul>
  13. 13. モバイル系の課題 <ul><li>キャリアのブラウザ仕様の違い </li></ul><ul><li>絵文字 </li></ul><ul><li>ページあたりの表示メモリ制限 </li></ul><ul><li>Flash Lite </li></ul><ul><li>端末 ID での認証 </li></ul><ul><li>IP 帯域チェック </li></ul><ul><li>QR コード </li></ul><ul><li>mailto: の仕様 </li></ul><ul><li>迷惑メール拒否機能対策 </li></ul><ul><li>迷惑メール業者認定回避 </li></ul><ul><li>デコメ </li></ul><ul><li>本文なし写真添付メール </li></ul><ul><li>Cookie </li></ul><ul><li>簡易位置情報 </li></ul><ul><li>リダイレクト回数制限 </li></ul><ul><li>GPS </li></ul><ul><li>Java アプリ </li></ul><ul><li>SSL は高いのしかだめだったり </li></ul><ul><li>フルブラウザ </li></ul><ul><li>着メロ </li></ul><ul><li>待ち受け </li></ul><ul><li>モバイル検索エンジンのクローラー対策 </li></ul><ul><li>いろんな NDA 縛り </li></ul><ul><li>総務省による鶴の一声 </li></ul><ul><li>たまに現れる超特殊端末 </li></ul><ul><li>ARPU ARPU 言うお客様 </li></ul><ul><li>古い端末を捨てたがらないお客様 </li></ul><ul><li>サービスが終了してしまったキャリア </li></ul><ul><li>度重なる運営者変更に見舞われるキャリア </li></ul><ul><li>キャリアごとに見にくい技術情報 </li></ul><ul><li>なぜか対応表は画像とか PDF で提供されたり </li></ul><ul><li>たびだび変えられる URL </li></ul>
  14. 14. Perl ハッカーなら <ul><li>モジュールで解決しよう </li></ul>
  15. 15. アジェンダ <ul><li>Perl とモバイル </li></ul><ul><li>Encode::JP::Mobile とは ← </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~ </li></ul><ul><li>ステータス / インストール </li></ul><ul><li>さいごに </li></ul>
  16. 16. ちなみに <ul><li>今回の YAPC はモバイルネタ多いですね </li></ul>← 今ココ
  17. 17. TMTOWTDI <ul><li>Encode::JP::Mobile は、 絵文字周りの課題を扱うモジュールです </li></ul><ul><li>miyagawa さん作 </li></ul><ul><li>#mobilejp で発展 </li></ul><ul><li>Typecast でも使われているらしい </li></ul>
  18. 18. Encode::JP::Mobile でやりたいこと
  19. 19. 絵文字を使うと <ul><li>1.画像を使わないで (サイズを抑えつつ) キラキラにできる </li></ul>株式会社ビジュアルワークス http://t-gate.tv/ お世話になっております m(_ _)m
  20. 20. <ul><li>2.携帯ユーザーの大事な表現方法 </li></ul>株式会社モバイルファクトリー http://wassr.jp/
  21. 21. が、各社独自仕様 <ul><li>詳しくは </li></ul><ul><ul><li>http://coderepos.org/share/wiki/Mobile/Encoding とか。少し触らないと忘れる </li></ul></ul>Willcom カバーしきれてません
  22. 22. 絵文字対応 <ul><li>1 キャリアだけであれば </li></ul>アプリ DB ケータイ
  23. 23. アプリ DB ・ 3 キャリアで共通データを使いたい ・テンプレートや DB は一つの文字コードにしたい (utf-8 とか ) ・ アプリ内では、文字はフラグつけて扱いたい ドコモ au などなど
  24. 24. <ul><li>キャリアが行ない始めた絵文字の相互変換 </li></ul>あと、どうせならこれもやりたい
  25. 25. 期待する形 共通なもの ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8
  26. 26. Encode::JP::Mobile の解決法 <ul><li>Encode を使う </li></ul>softbank の絵文字交じりの utf-8 unicode decode ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 ドコモの絵文字交じりの sjis au の絵文字交じりの sjis encode
  27. 27. Encode::JP::Mobile が気持ちいい理由 <ul><li>1. Encode を利用 </li></ul><ul><ul><li>Perl 標準のエンコーディング操作モジュール </li></ul></ul><ul><ul><li>Encode まわりの資産がそのまま使える </li></ul></ul>
  28. 28. Encode::JP::Mobile が気持ちいい理由 <ul><li>2.独特なことをしていない </li></ul><ul><ul><li>Encode:: の範囲のみ </li></ul></ul><ul><ul><li>shift_jis ← -> unicode マッピングでどこにマッピングするか </li></ul></ul><ul><ul><li>できるだけ公式情報(キャリアのページ)から構築しようとする涙ぐましい努力 </li></ul></ul>
  29. 29. マッピングについて補足 <ul><ul><li>shift_jis ← -> unicode のマッピング </li></ul></ul>
  30. 30. decode ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 encode 絵文字以外 ドコモ絵文字 au 絵文字 softbank 絵文字 unicode PRIVATE USE AREA
  31. 31. 絵文字以外 ドコモ絵文字 au 絵文字 softbank 絵文字 unicode PRIVATE USE AREA 詳細 http://subtech.g.hatena.ne.jp/miyagawa/20071112/1194865208 絵文字以外 ドコモ絵文字 au 絵文字 softbank 絵文字 unicode PRIVATE USE AREA x-sjis-kddi-cp932 x-sjis-kddi-auto
  32. 32. というわけで、 Encode::JP::Mobile <ul><li>メイン機能 </li></ul><ul><ul><li>1.エンコーディングの提供 (当初) </li></ul></ul><ul><ul><li>2.絵文字のキャリア間変換 (最近追加) </li></ul></ul>
  33. 33. アジェンダ <ul><li>Perl とモバイル </li></ul><ul><li>Encode::JP::Mobile とは </li></ul><ul><li>使い方 ~基本編~ ← </li></ul><ul><li>使い方 ~発展編~ </li></ul><ul><li>ステータス / インストール </li></ul><ul><li>さいごに </li></ul>
  34. 34. 簡単です use Encode; # shift_jis の「あああ」 my $input = &quot;x82xa0x82xa0x82xa0&quot;; # 該当エンコーディングで decode する… my $text = decode('shift_jis', $input); # 後は文字として好きな処理をする… warn length($text); # 3 # 好きなエンコーディングで encode して出す print encode('utf-8', $text);
  35. 35. use Encode; use Encode::JP::Mobile; # エンコーディングが追加される
  36. 36. Encode::JP::Mobile が追加する エンコーディング名 <ul><li>x-sjis-docomo (x-sjis-imode) </li></ul><ul><li>x-sjis-kddi-auto (x-sjis-ezweb-auto) </li></ul><ul><li>x-sjis-softbank (x-sjis-vodafone) </li></ul><ul><li>x-sjis-airh </li></ul><ul><li>x-utf8-docomo (x-utf8-imode) </li></ul><ul><li>x-utf8-kddi (x-utf8-ezweb) </li></ul><ul><li>x-utf8-softbank (x-utf8-vodafone) </li></ul>これだけじゃないけど割愛
  37. 37. use Encode; use Encode::JP::Mobile; # DoCoMo で、 chaset=shift_jis のページのフォームから # 「あ  」 を送信 my $input = &quot;x82xa0xF8x9F&quot;; # decode my $text = decode(' x-sjis-docomo ', $input); # 好きな処理をする… warn length($text); # 2 # 好きなエンコーディングで encode して出す print encode(' x-sjis-kddi-auto ', $text); # x82xa0xf6x60 (あ  )
  38. 38. 自由自在に unicode 'x-sjis-docomo' で decode ドコモの絵文字交じりの sjis au の絵文字交じりの sjis softbank の絵文字交じりの utf-8 DB とか 'utf-8' で encode 'x-sjis-kddi-auto' で decode 'x-utf8-softbank' で decode unicode は utf8 に表現できるのでロスなし
  39. 39. unicode ドコモのへ sjis として au へ sjis として softbank へ utf-8 DB とか 'utf-8' で decode 'x-sjis-docomo' で encode 'x-sjis-kddi-auto' で encode 'x-utf8-softbank' で encode
  40. 40. どのエンコーディングを使うか <ul><li>HTTP::MobileAgent::Plugin::Charset </li></ul>use HTTP::MobileAgent; use HTTP::MobileAgent::Plugin::Charset; my $agent = HTTP::MobileAgent->new($ua); my $encoding = $agent ->encoding ;# 適したエンコーディング名 use HTTP::MobileAttribute plugins => [qw( Encoding )]; my $agent = HTTP::MobileAttribute->new; my $encoding = $agent ->encoding ; # 適したエンコーディング名 <ul><li>HTTP::MobileAttribute::Plugin::Encoding </li></ul>
  41. 41. キャリア間変換の話 A : 絵文字 -> 絵文字 B : 絵文字 -> 文字表現 (>3<) とか [ エビフライ ]
  42. 42. <ul><li>A は何もしなくて ok </li></ul><ul><li>B について </li></ul><ul><ul><li>ないものは encode() 失敗します </li></ul></ul><ul><ul><li>-> Encode デフォルトの処理では「 ? 」に。 </li></ul></ul><ul><li>例 </li></ul>use Encode; use Encode::JP::Mobile; # decode 済みの au の「     」 my $text = &quot;x{EF60}x{ECA2}&quot;; print encode('x-sjis-docomo', $text); #     ?
  43. 43. encode() 失敗するものについては、 <ul><li>encode 第三引数で制御可能 </li></ul>use Encode; use Encode::JP::Mobile; my $text = &quot;x{EF60}x{ECA2}&quot;; # print encode('x-sjis-docomo', $text, Encode::FB_XMLCREF ); 
  44. 44. コールバックを指定可能 use Encode; use Encode::JP::Mobile; my $text = &quot;x{EF60}x{ECA2}&quot;; # print encode('x-sjis-docomo', $text, sub {'x'} ); x
  45. 45. Encode::JP::Mobile::FB_CHARACTER <ul><li>というカスタムコールバック付属 </li></ul>use Encode; use Encode::JP::Mobile; my $text = &quot;x{EF60}x{ECA2}&quot;; print encode('x-sjis-docomo', $text, Encode::JP::Mobile::FB_CHARACTER );   (> 3 <) と、キャリアが行なう相互変換と同じようになる ※ Encode::JP::Mobile::Fallback で定義されています。
  46. 46. アジェンダ <ul><li>Perl とモバイル </li></ul><ul><li>Encode::JP::Mobile とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~ ← </li></ul><ul><li>ステータス / インストール </li></ul><ul><li>さいごに </li></ul>
  47. 47. 今回は基本のものだけ扱いましたが <ul><li>絵文字だけ除去したい </li></ul><ul><li>PC 向けに絵文字を画像で表示したい </li></ul><ul><li>といったこともできて、 Encode::JP::Mobile::CookBook の POD に書いてあります。 </li></ul>
  48. 48. お役立ち <ul><li>dat   - モジュールが内部的に利用 </li></ul><ul><li>lib   - モジュール </li></ul><ul><li>t   - テスト </li></ul><ul><li>tools   - dat/* や ucm/* を生成するもの達 </li></ul><ul><li>ucm   - make 時に c (モジュール)になるマッピング </li></ul>
  49. 49. お役立ち <ul><li>ソース ./tools/* </li></ul><ul><ul><li>キャリアのページをスクレイピングして ./ucm/* や ./dat/* を生成 </li></ul></ul><ul><li>ソース ./dat/* </li></ul><ul><ul><li>各種マッピング情報 </li></ul></ul><ul><ul><li>-> tools や dat を他言語のモジュールでも使えるのでは </li></ul></ul>
  50. 50. アジェンダ <ul><li>Perl とモバイル </li></ul><ul><li>Encode::JP::Mobile とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~ </li></ul><ul><li>ステータス / インストール ← </li></ul><ul><li>さいごに </li></ul>
  51. 51. ステータス <ul><li>いちおう still development </li></ul><ul><li>だいぶ落ち着きましたが </li></ul><ul><li>TODO </li></ul><ul><ul><li>clouder さんによる Willcom メールの branch の trunk 取り込み </li></ul></ul><ul><ul><li>Typecast の絵文字も取り込み?たいかも </li></ul></ul><ul><li>ぜひ使ってみてください </li></ul><ul><li>周辺モジュールの充実が期待 </li></ul>
  52. 52. Catalyst で使う <ul><li>Catalyst::Plugin::Unicode::Encoding::MobileAgent http://coderepos.org/share/browser/lang/perl/Catalyst-Plugin-Unicode-Encoding-MobileAgent/trunk </li></ul><ul><li>楽だけど、いまいちな気もする(融通が利かない)。 今の案件で別な形式も作っているので、合わせて UP 予定す </li></ul>use Catalyst qw( ConfigLoader MobileAgent Unicode::Encoding Unicode::Encoding::MobileAgent );
  53. 53. インストール <ul><li>CPAN は v0.24 (相互変換がない時代) </li></ul><ul><ul><li>もし http://search.cpan.org/dist/Encode-JP-Mobile/ が v0.25 じゃなかったら </li></ul></ul><ul><li>svn HEAD </li></ul>$ svn co http://svn.coderepos.org/share/lang/perl/Encode-JP-Mobile/trunk/ Encode-JP-Mobile $ perl Makefile.PL $ make $ make test $ sudo make install
  54. 54. アジェンダ <ul><li>Perl とモバイル </li></ul><ul><li>Encode::JP::Mobile とは </li></ul><ul><li>使い方 ~基本編~ </li></ul><ul><li>使い方 ~発展編~ </li></ul><ul><li>ステータス / インストール </li></ul><ul><li>さいごに ← </li></ul>
  55. 55. モバイルまわりはまだまだモジュール化・ノウハウ共有の余地あり <ul><li>#mobilejp@irc.freenode.net </li></ul><ul><ul><li>私は遅レスですすみません </li></ul></ul><ul><ul><li>神速な tokuhirom さんがいます </li></ul></ul><ul><ul><li>Encode::JP::Mobile のチャンネルというわけではない </li></ul></ul><ul><ul><li>Perl だけってわけでもないです </li></ul></ul><ul><li>http://mobilehacker.g.hatena.ne.jp/ </li></ul><ul><ul><li>もある </li></ul></ul>
  56. 56. ありがとうございました <ul><li>Encode::JP::Mobile はいけてるモジュール </li></ul><ul><li>モバイル周りのノウハウ共有を進めよう </li></ul>

×