Encode::Guess
と言うモジュールがあります。
Perl5.8ではたしか標準付属なモジュールです。
Jcodeで言うところのgetcodeを行う*1モジュールです。
http://news.ring.gr.jp/news/openlab.jcode5/610
こんなやり取りがありました。
これを見る限りJcodeでは失敗時にはeucの用ですね。
と言うわけで家のWrapperもそういう風に書き換えてみました=]
my $src = $CGI->param($_); my $encodesrc = guess_encoding( $CGI->param($_) ); if( ref $encodesrc ) { from_to($src,$encodesrc->name,$Encodechar); $CGI->param($_,$src); } else { from_to($src,'euc-jp',$Encodechar); $CGI->param($_,$src); }
果たしてこれが正しい選択なのか…それはだれにも解りません。
*1:ただしJcodeは元の文字列を自動判別するため内部的に呼ばれるのですが。