March 29, 2007

Encode::First をリリース

Encode::First を CPAN にリリース。ある文字列を最小の character set でエンコードしたいときに使う。使い方は、

use Encode::First;
my($enc, $bytes) = encode_first("ascii,latin-1,euc-jp,utf-8", $string);

という感じ。Email を送信するときとか、utf-8 を読めないメーラ対策として本文がすべて日本語なら iso-2022-jp で送る、というのを Gmail とかでもやっているんだけど、それをやりたくてつくった。

で、Traditional なエンコード (us-ascii, latin-1, iso-2022-jp, iso-2022-kr, koi8-ru etc.) を対象にして文字列をエンコードする Encode::Email::Best というのをつくろうとしたら、また iso-2022-jp でハマった。6ヵ月前にレポート したんだけどまだ直っていなくて、JIS 以外の文字列(ハングルやらタイ文字やら)渡すと全部 PERLQQ でアスキーにされてしまってCHECK フラグが無視されてしまうので、Encode::First がちゃんと動かない。

まあ workaround としては euc-jp にして、エラーがなければ iso-2022-jp にするというのがあるけど明らかに Encode.pm のバグなのでもう一度レポート。

Posted by miyagawa at March 29, 2007 06:53 AM | Permalink | Comments (1) | TrackBack(0)
Comments

EncodeのUpdateが遅れてて申し訳ありません。
他にもいろいろとちっちゃいのもたまっているので、今回のYAPC::Asia::2006のHackerthonの私のAssignmentということにさせてください。

Dan the Procrastinator

Posted by: on March 29, 2007 10:12 PM
Trackbacks
TrackBack URL for this entry: http://blog.bulknews.net/mt3/mt-tb.cgi/2107
Post a comment