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

Back to archive index

Margy Mutoh margy****@roseb*****
2005年 8月 21日 (日) 18:27:05 JST


こんにちは。Margyです。

ご報告がてら自己レスです。
Tep-jの過去ログを読んでいたところ、

> Directive                      Local Value  Master Value
> --------------------------------------------------------
> mbstring.detect_order          no value     no value
> mbstring.encoding_translation  Off          Off
> mbstring.func_overload         0            0
> mbstring.http_input            pass         pass
> mbstring.http_output           pass         pass
> mbstring.internal_encoding     no value     no value
> mbstring.language              neutral      neutral
> mbstring.substitute_character  no value     no value
> -------------------------------------

原因はここの設定かな、という気がしました。
レンサバなので、.htaccessで変えてみようということで、
osCommerceのインストールマニュアルや、過去ログの
http://lists.sourceforge.jp/mailman/archives/tep-j-general/2004-July/013812.html
↑こちらの前後の発言を参考に、.htaccessを変えてみて、

> ■ソース
> <?php
>  $test="日本語エンコーディングテスト";
>  print "$test (" . mb_detect_encoding($test) . ")<br>";
>  print ("mbstring.http_input=". mb_http_input() ."<br>");
>  print ("mbstring.http_output=". mb_http_output() ."<br>");
>  print ("mbstring.internal_encoding= ".mb_internal_encoding()."<br>");
> ?>

これで結果を出力すると同時に、contact_us.phpでのメール送信
テストを繰り返しました。下はその結果です。

---------------------------------------------
■設定1(上に提示のデフォルト)

■結果1
日本語エンコーディングテスト (UTF-8)
mbstring.http_input=
mbstring.http_output=pass
mbstring.internal_encoding= ISO-8859-1

■subject/fromの化け
直らず
---------------------------------------------
■設定2
php_flag output_buffering On
php_value output_handler mb_output_handler
php_value default_charset EUC-JP
php_value mbstring.language Japanese
php_flag encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output EUC-JP
php_value mbstring.internal_encoding EUC-JP
php_value mbstring.substitute_character none

■結果2
日本語エンコーディングテスト (EUC-JP)
mbstring.http_input=
mbstring.http_output=EUC-JP
mbstring.internal_encoding= EUC-JP

■subject/fromの化け
直らず
---------------------------------------------
■設定3(設定2の以下の行だけを差し替え)
php_value mbstring.http_input ASCII

■結果3
日本語エンコーディングテスト (EUC-JP)
mbstring.http_input=
mbstring.http_output=EUC-JP
mbstring.internal_encoding= EUC-JP

■subject/fromの化け
直らず
---------------------------------------------
■設定4(設定2の以下の行だけを差し替え)
php_value mbstring.http_input SJIS

■結果4
日本語エンコーディングテスト (EUC-JP)
mbstring.http_input=
mbstring.http_output=EUC-JP
mbstring.internal_encoding= EUC-JP

■subject/fromの化け
直らず
---------------------------------------------

…というように、ちっとも直りません(T-T;)
mbstring.http_input=
がずっと空白のままなのも気になりますが…

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

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

Margy Mutoh






Tep-j-general メーリングリストの案内
Back to archive index