- 締切済み
PHPの文字化け
PHP4.3、Apache2.0.46を利用しています。 htmlタグ内でのテキストは正しく表示されるのですが returnやechoなどで表示させると文字化けしてしまいます。 PHPのスクリプトは全てEUCで記述されています。 化け方は、例を挙げると ※入力されたID、パスワードが正しくありません。 ↓ ※ュID鴻・若罩c障 のようになります。 php.iniの文字コードまわりの設定は output_buffering = Off magic_quotes_gpc = Off mbstring.http_output = EUC-JP mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none となっています。 どうかお知恵をお貸しくださいませ。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
>mbstring.encoding_translation = On >mbstring.detect_order = auto が悪さをしてるんじゃないかと思います。 EUC-JP で記述して EUC-JP で出力するなら変換の指定は必要ないと思います。 mbstring.language = Japanese mbstring.internal_encoding = EUC-JP だけでいいんじゃないでしょうか とりあえず、変換に関する部分をコメントアウト ;mbstring.encoding_translation = On ;mbstring.detect_order = auto してみたらどうでしょうか
- yambejp
- ベストアンサー率51% (3827/7415)
明示的にヘッダーでEUCを渡してあげてみてください <?PHP header("Content-Type:text/html;charset=euc-jp"); echo "※入力されたID、パスワードが正しくありません。"; ?>
補足
申し訳ありません。PHPのソースそのものの変更が出来ない状態なのです。
- moon_night
- ベストアンサー率32% (598/1831)
こちらが参考になるのではないでしょうか。
補足
ソースがEUCの場合の設定をどちらも試してみましたが改善しませんでした。すみません。 EUC→EUCでは表示そのものが出来なくなりました。
補足
助言ありがとうございます。 コメントアウトしてみました。 しかし、文字化けに変化はありませんでした。