[PHP-users 27085] Re: PHP5.0.5 での文字化けを解決したい

KT tokunaga.k @ gmail.com
2005年 10月 5日 (水) 12:14:44 JST


徳一です。

金田さん、sumiya さん、お返事ありがとうございます。


On 10/5/05, canada-php @ kaede.to <canada-php @ kaede.to> wrote:
> us-asciiになるそうなので若干現象が違いますが、
>
> http://www.itmedia.co.jp/help/tips/linux/l0564.html
>
> もしかしたらこの辺りが参考になりませんか?

httpd.conf に以下の設定を追加・変更するというのは、作業履歴の中に書き
忘れましたが、既に試していました。どちらも同時に設定後、表示の確認を行っ
ても文字化けのままでした。
----
AddDefaultCharset EUC-JP
LanguagePriority ja .....
----


On 10/5/05, Etsuo SUMIYA <sumiya-e @ ube-shinko.co.jp> wrote:
> 次のことを確認してみてください.
>
> php.iniを変えたら
> <? phpinfo() ?>
> で設定が反映されているか確認.

これも php.ini の変更を行った場合は必ず確認しており、書き込んだ通りの
設定が表示されています。

> IEを使っている場合は,キャッシュに残っている可能性があるので,キャッ
> シュを一度消すか,違う名称のhtmlファイルにして確認してみる.

過去にキャッシュで苦労した経験があるので、その点は気をつけて見ています
が、改めて IE のキャッシュを消してからやっても文字化けのままでした。あ、
そうそう、ブラウザは日本語版 InternetExplorer 6.0 SP2 です。


金田さんの情報では、apache2 自体が charset を書き換えるということでし
たので、では、apache1.3.33 に php5.0.5 を組み込ませて同じテストをやっ
てみました。apache のバージョンを変えても同じように charset が書き換え
られてしまっています。

ちなみに、apache1.3.33 + php4 では、同じ ja.php を表示させると正しく日
本語を表示します。但し、mbstring.http_output = SJIS としていました。さ
らに apache2 + php5 でも mbstring.http_output を SJIS に変更した場合
(& output_buffering = On)、文字化けは解消されませんでした。

apache1 + php4 + internal_encoding=EUC-JP + http_output=SJIS   --> 日本語○
apache1 + php5 + internal_encoding=EUC-JP + http_output=SJIS   --> 日本語×
apache1 + php5 + internal_encoding=EUC-JP + http_output=EUC-JP --> 日本語×
apache2 + php5 + internal_encoding=EUC-JP + http_output=SJIS   --> 日本語×

こう見てくると、charset を書き換えない(と思われる) apache1 で php5 を
使っても日本語表示に失敗しています。そうなると、php ファイルの処理の順
番が気になります。apache2 と php5 のどちらが書き換えている犯人なのか。
私の頭ではオーバーヒート気味です。


PHP-users メーリングリストの案内