PHPからテーブルの内容を表示するページをブラウザから見ると、文字化けを起こす場合がある。
これは、Linux上で日本語はEUCコードで格納されるからである。
通常、Windowsでは日本語データにはSJISを使っている。だから、作成したHTMLはSJISで書かれているが、PGSQLから取り出したデータはEUCで書かれているため、文字化けが出てしまうのだ。
これを防ぐため、サーバ側の設定を変更する(もちろんrootで実行)。
1.PHPの設定ファイルを編集する
- php3.iniファイルをviで開く。
# vi /usr/local/lib/php3.ini - internationalizationの設定を変更する。
; internationalization
i18n.http_output = SJIS
i18n.internal_encoding = EUC-JP
i18n.script_encoding = auto
i18n.http.input = auto
i18n.http_input_default = SJIS
↓
; internationalization
i18n.http_output =EUC-JP
i18n.internal_encoding = EUC-JP
i18n.script_encoding = auto
i18n.http.input = auto
i18n.http_input_default =EUC-JP2.Apacheの再起動
php3.iniの設定を反映させるために、Apacheを再起動する。
# /etc/rc.d/init.d/httpd restart