[Tep-j-general] Re: php4.4.0で日本語が化け

Zurück zum Archiv-Index

Seiji Sogabe sogab****@alles*****
2005年 8月 21日 (日) 21:44:47 JST


こんばんわ、曽我部です。

Margy Mutoh wrote:
> それで、php4.4.0とmbstringでググってみたら、こんなのが出てきました。
> http://ns1.php.gr.jp/pipermail/php-users/2005-July/026701.html
> このスレッドを読んでいくと、「PHP4.4.0のmb_send_mail関数のバグでは
> ないか?」という話がありました。
> そうだとすると、そのバグが修正されるまで対策はないのでしょうか?

バグとして登録されていますね。
http://bugs.php.net/bug.php?id=33720

> とりあえず、「日本語の先頭に全角スペースを入れる」の回避策を
> とりました。
> これでなんとか取り繕えてますが、根本的な解決にはなってないので、
> なにかご存じの方がおいででしたら、引き続きご指導よろしくお願い
> いたします。m(_ _)m

根本的な解決はバグが修正されることですが、php-usersのスレッドに記述されて
いるように、ISO-2022-JPに変換してからmb_encode_mimeheaderを使用すれば
文字化けしないようです。

admin/includes/classes/email.phpの444行目位を以下のように変更してみたと
ころ、
わたしの環境では文字化けは発生しませんでした。

>       if ($subject != '') {
> 	  $subject = mb_convert_encoding($subject, 'ISO-2022-JP');
>         $subject = mb_encode_mimeheader ... (省略)
>       }
> 
>       $to_name = mb_convert_encoding($to_name, 'ISO-2022-JP');
>       $to_addr = mb_convert_encoding($to_addr, 'ISO-2022-JP');
>       $to    = ($to_name != '')
>         ? ('"' . mb_encode_mimeheader(省略)
>         : $to_addr;
> 	$from_name = mb_convert_encoding($from_name, 'ISO-2022-JP');
> 	$from_addr = mb_convert_encoding($from_addr, 'ISO-2022-JP');

上記と同じように、catalog/includes/classes/email.phpも修正すれば、
バグが修正されるまではどうにかなるのではないでしょうか。
あまり、確認をしたわけではありませんが。

では。













Tep-j-general メーリングリストの案内
Zurück zum Archiv-Index