tomi-ruのモバイル日記

profile
記事とカテゴリ一覧はこちら
 | 

2008-02-06

Encodeのbranches/callback-argsの説明

15:21 | はてなブックマーク - Encodeのbranches/callback-argsの説明 - tomi-ruのモバイル日記

追記:Encode::JP::Mobile::FB_CHARACTERの用途を考えると実は引数必要なかったです。callbackがエンコーディングを知りたい、というケースはあるかもしれませんが。。。

---

先ほどCodereposのEncodeにbranches/callback-args切って入れたパッチの話です。

http://coderepos.org/share/changeset/6283

EncodeのCHECK引数には2.12からカスタムコールバックも使えますが、Encode::FB_XMLCREF等もともと用意されてる仕組みでほとんど事足りるのであまり使われてないかもしれません。

Encode::JP::Mobileは、ここ数ヶ月の更新でキャリア間で行なわれている絵文字の相互変換をだいたいサポートしています。今つみ残っているのは、相手のキャリアに存在しない絵文字が (>3<) みたいに文字で表現される、というのを実装することなのですが、これをカスタムコールバックを使って実装してみようかな、ということになりまして。

コールバック側で、失敗した文字コードだけじゃなくて、「何というエンコーディング名で失敗したのか」、も取りたいのですが、現在のEncodeだと渡ってこないようなので書いてみたのがbranches/callback-argsです。

xsは得意じゃないので変かもしれない。あとpodにはまだ何も書いていません

ちなみに

http://coderepos.org/share/browser/lang/perl/Encode-JP-Mobile/trunk/lib/Encode/JP/Mobile.pm?rev=5506#L113

という DB+callerの組み合わせで無理やり取っていたのですが、これだと

my $encoding = find_encoding('x-utf8-docomo');
$encoding->encode("\x{ECA2}", Encode::JP::Mobile::FB_CHARACTER);

みたいな時に取れない。

タスク
  • Encode.xsに入れた修正で、何か見落としてる弊害ないか?
  • 現状のままでも$encoding->encodeみたいな時エンコーディング名が取れる方法あるなら別にEncode側に変更は要らない
  • コールバックを使わずに、Encode::JP::Mobile側に(>3<)も突っ込んだucmを入れるというのもアリ
  • 追記:callerで取れそうなのだけど、取れないのはXSだからか?

ToTooToToo2012/12/09 18:06I'm so glad I found my suoltion online.

frevaulfrevaul2012/12/12 02:45YLEjWY , [url=http://nruhcxyzhxki.com/]nruhcxyzhxki[/url], [link=http://ghoeitkffxmz.com/]ghoeitkffxmz[/link], http://efwkfedjnkvm.com/

gadyiqytgadyiqyt2012/12/13 11:06z1ZLDs , [url=http://otyokuruwnht.com/]otyokuruwnht[/url], [link=http://ndoepgyssafh.com/]ndoepgyssafh[/link], http://cqlqifcwjtkq.com/

トラックバック - http://mobilehacker.g.hatena.ne.jp/tomi-ru/20080206
 |