namazu-ml(avocado)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Plan for Namazu next version



akira yamada <akira@xxxxxxxxxxx> wrote:

>S>     my ($str) = @_;
>S>     $str =~ s/^[ \t]+//m;
>S>     $str =~ s/[\r\n]+/ /;
>S>     $str =~ s/=\?ISO-2022-JP\?B\?(.*?)=\?=/decode_base64($1)/gei;
>S>     &jcode::convert(*str,'euc');
>S>     $str;
>S> }
>
>これだと長い文字列が MIME エンコードされた場合など
>エンコード文字列が適当に分割されているケースで
>問題になりませんかね?

うーむ。ちょっと問題ありますね。修正するとすれば

     my ($str) = @_;
     $str =~ s/^[ \t]+//mg;
     $str =~ s/[\r\n]+//g;
     $str =~ s/=\?ISO-2022-JP\?B\?(.*?)=\?=/decode_base64($1)/gei;

かな。あと、問題なのが

     &jcode::convert(*str,'euc');

のように jcode.pl で直接コード変換しようとしても my 変数はだめみた
いなので、

    $str = &jcode'euc($str, 'jis');

のように call & value で呼び出して使わないといけないみたいです。


さて、ここからが本題ですが、"nkf -Z1" のように JIS X0208 の英数字
記号を ASCII へ変換する方法はないものでしょうか。 "kakasi -Ea" と
いう手もあるのですが、 ChaSen も考えるとそうもいきません。 Perl で
できる良い方法があればご教示ください (JPerl は使わないで)。

--
高林 哲 Satoru Takabayashi