• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpがsjisファイルを勝手にeuc-jpに)

phpがsjisファイルを勝手にeuc-jpに変更してブラウザに表示する問題について

このQ&Aのポイント
  • phpがsjisファイルをeuc-jpに変更してブラウザに表示してしまう問題について解決方法を教えてください。
  • phpの設定でsjisファイルをeuc-jpに変更する問題についてどうすれば良いか教えてください。
  • phpの設定でsjisファイルをeuc-jpに変更する方法について詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#24096
noname#24096
回答No.2

>データベースもsjisで動かしています。 >ところがデータベースからのデータが文字化けしているのです。 どんな設定をしたか分かりませんが PostgreSQLで使える文字コードはEUC-JPかUTF-8です。 SJISはクライアントエンコーディングを設定することで PostgreSQLが自動的に変換してくれるだけです。 逆を言えばクライアントエンコーディングを設定しなければ 入出力はEUC-JPかUTF-8になります。 PHPならpg_set_client_encodingを使ってないとか…

参考URL:
http://jp.php.net/manual/ja/function.pg-set-client-encoding.php
reiman
質問者

お礼

ありがとうございます。 使っていませんでした。 pg_set_client_encoding($con,SJIS); を接続後に追加したら動きました。

その他の回答 (1)

noname#24096
noname#24096
回答No.1

どんな処理をしようとしているのか どんな環境なのか 全く分からないのでマニュアルをどうぞ。

参考URL:
http://jp.php.net/manual/ja/ref.mbstring.php
reiman
質問者

お礼

ありがとうございます。 php.iniの最後に default_charset = Shift_JIS output_buffering = On output_handler = mb_output_handler mbstring.http_output = SJIS mbstring.internal_encoding = SJIS mbstring.http_input = ASCII,JIS,SJIS,EUC-JP mbstring.detect_order = ASCII,JIS,SJIS,EUC-JP mbstring.substitute_character = none を追加したら動きました。 しかしPostgreSQLから受け取ったデータを表示するとそこだけ文字化けします。 環境はXPに Apache2+PHP5+PostgreSQL8 の最新版をほぼデフォルト設定でいれて動かしています。 PHPファイルはsjis データベースもsjisで動かしています。 ところがデータベースからのデータが文字化けしているのです。 すべてeucにすれば問題なく表示されていました。

関連するQ&A