• 締切済み

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 となっています。 どうかお知恵をお貸しくださいませ。

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>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 してみたらどうでしょうか

ferini
質問者

補足

助言ありがとうございます。 コメントアウトしてみました。 しかし、文字化けに変化はありませんでした。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

明示的にヘッダーでEUCを渡してあげてみてください <?PHP header("Content-Type:text/html;charset=euc-jp"); echo "※入力されたID、パスワードが正しくありません。"; ?>

ferini
質問者

補足

申し訳ありません。PHPのソースそのものの変更が出来ない状態なのです。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

こちらが参考になるのではないでしょうか。

参考URL:
http://www.bnote.net/windows/windows/code.shtml
ferini
質問者

補足

ソースがEUCの場合の設定をどちらも試してみましたが改善しませんでした。すみません。 EUC→EUCでは表示そのものが出来なくなりました。

関連するQ&A