作者: dune
日時: 2003/12/01(08:11)
極悪です。

ねこ丸 さんの [TSfree:556] Re: 中国語 (GB)のテキスト処理 から
>  先日極悪さんが Perl の Encode モジュールを使って、これは
>イケそうと仰ってました。

当たり前すぎて笑われそうですが、Encode モジュール使っててあ
りがたいと思ったのは、スクリプト本体を utf8 で書いておいて、
入出力に Encode を使ったコード変換を置くようにしておけば、  
Shift-JIS でも GB でも気にせず utf8 で処理できること。

つまり utf8(または親しみのある Shift-JIS)で動作確認してお
けば、文字コードが GB になっても動作すると期待できるのです。

もちろん Encode モジュールの代わりに Jcode を使ってもいいけ
ど、GB は処理できないし(今更やってもつまらないし)、今後暗
号や Super Python(笑)のサポートとか言語以外の音階や色など
も Encode モジュールで処理していいかもしれない(未来がある)。
#音楽の N-gram 分析とかやってみたいなぁ。

そんなわけでこなれた Jcode もいいけど、そろそろ Encode + utf8
かなと思い始めました。

>use encoding しない方が期待通りに動くのはどういうこっちゃ。

僕も encoding プラグマは使ってませんが、nifty.fgalts.mes.07:9013
で、

>encoding プラグマを2回続けて実
>行するとこけるようです。だから、Foo.pm の中で use encoding 
>したら、最後に no encoding しておく。モジュールを呼び出す側
>は、use Foo した後で use encodingする。件のドキュメントには
>
>>make sure you say no encoding at the end of the module 
>
>とそれを匂わすようなことは書いてありますが、2回続けて      
>use encoding してはダメとは書いてない。バグっぽい仕様だと思
>います。

何てことを書いてます。スクリプトを任意の言語で書くのはまだ冒
険なのかもしれない。
-- 
FZH01112 at nifty.com
http://hpcgi1.nifty.com/dune/gwiki.pl?