CVS 版で文字化けする問題

昨日の続き。やはり、あとで受信したメールについても文字化けしてしまう。どうも、ヘッダのデコードまではできているのだけど、その後、iso-2022-jp から euc-jp への変換が行われていないようだ。
POPFile/History.pm を見ると、

    $self->{classifier__}->{parser__}->decode_string(
${$header{$h}}[0] );

という部分があって、Classifier/MailParse.pm の decode_string を呼んでいるのだが、ここではどの言語で処理すべきかが渡されていない。このため、decode_string にある漢字コード変換がなされていないのだ。


最初、POPFile/History.pm を修正しようかと思ったが、ここでは特に言語に固有の処理は行われていない。なので、逆に Classifier/MailParse.pm を修正してみることにした。decode_string が呼ばれたときに、言語の指定がされていなければ $self->{lang__} を使うように修正してみた。(この修正内容を、本家フォーラムに投稿した)
結果はこれまでのところ順調。decode_string を使っている別の部分に副作用があるかもしれないが、これまでのところ特に問題は起きていない。