[PHP-users 24759] Postgres[EUC-JP]にアクセスする場合

kt_pierrot @ infoseek.jp kt_pierrot @ infoseek.jp
2005年 3月 2日 (水) 19:46:03 JST


及川と申します。

PHP+Postgres で携帯用コンテンツのサイトを作成する事になりました。
既存のソースコードがありそれを使用しなければいけないのですが、
既存のソースはEUCで書かれています。
携帯なのでS-JISで出力しなければいけないので、
php.iniに

output_buffering = On
output_handler = mb_output_handler
default_mimetype = "text/html"
default_charset = "Shift_JIS"
mbstring.internal_encoding = EUC-JP
mbstring.http_input = SJIS
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;

以上の設定を行ったのですが
DBにINSERT/UPDATEする際にも文字がSJISで記録されるようになってしまいました。

INSERT/UPDATEする前に SET CLIENT_ENCODING TO 'sjis' を行うと
UPDATE/INSERT はうまくいくのですが、
SELECT時文字化けした文字が返ってきてしまいます。

このようなPHP[ソース⇒EUC_JP/出力⇒SJIS]+Postgres[EUC]でサイトを作成したい場合どのような設定にするのが一般的なのでしょうか?

環境は以下になります
RedHat 7.3
Apache 1.3.28
PHP PHP 4.3.4
Postgres 7.3.4





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