2011年12月14日

utf-8 subjectの文字化けについて

初めてメールさせていただきます。
清野と申します。

fml8を利用してメーリングリストシステムを運用しているのですが、
UTF-8でエンコーディングされたメールを受信するとsubjectが
文字化けする事象が発生しました。
(利用しているバージョンはfml 7.98.15-20100306です。)

www.fml.orgに
> 2011/08/25
>
> Mail::Message::Encode
> bugfix quoted-printable pattern at decode_mime_utf8_to_euc().
が公開されていたため適用してみたのですが、
以下のようなのパターンでの文字化けが解消しませんでした。

■文字化けが発生するパターン
・「utf-8 テスト」のように、subjectに半角スペースが含まれるパターン
・「テストテストテストテストテストテスト」のように、ヘッダのsubject部が改行されるパターン

Encode.pmのdecode_mime_utf8_to_eucを
以下のように書き換えてみたところ上記パターンでの
文字化けは発生しなくなりましたが、他に問題
となるようなパターンが無いかが分かっていない状況です。

sub decode_mime_utf8_to_euc
{
my ($self, $str) = @_;

if ($str =~ /=\?utf-8\?(\w)\?/i) {
if ($1 =~ /B/i) {
$str=~ s/\n//s;
$str=~ s/=\?utf-8\?B\?([A-Za-z0-9+\/]+=*)\?=\s*/$self->raw_decode_base64($1)/gie;;
} elsif ($1 =~ /Q/i) {
$str=~ s/\n//s;
$str=~ s/_/=20/gi;;
$str=~ s/=\?utf-8\?B\?([A-Za-z0-9+\/]+=*)\?=\s*/$self->raw_decode_qp($1)/gie;;
}
}

$str =~ s/\n//g;
use Jcode;
return Jcode->new($str,"utf8")->euc;
}


どなたか、解決策をご存知の方はいらっしゃらないでしょうか?

投稿者 xml-rpc : 2011年12月14日 11:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/107603
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。