[pgsql-jp: 29206] SJIS表示について

荻原 宣之 ogihara @ itup.co.jp
2003年 2月 25日 (火) 11:07:36 JST


初めての投稿致します。
荻原と申します。

現在、Red Hat Linux + PHP + PostgreSQLで開発をしているのですが、
ブラウザで表示した時に、PostgreSQLから取得したデータだけ
EUCになってしまいます。
表示はSJISでする仕様となっているので、PosgreSQLから取得した
データをSJISで表示させたいのです。

一応、PHPのソースで

pg_exec(connection, "SET CLIENT_ENCODING TO 'SJIS';");

を実行して、フロントエンドのエンコーディングの設定をSJISにすれば
PostgreSQLから取得したデータがSJISになり、思い通りの結果が得られます。
しかし、これではDB接続した際にSQL文を実行しなければならないし、
DB接続の度にSQL文が実行されたのでは効率が悪いと思います。

よって、bashrcに

export PGCLIENTENCODING='SJIS'

を追記してみたりしたのですがうまくいきません。
どのように設定すれば、PHPのソースでフロントエンドのエンコーディングを
設定するSQL文を実行した時と同じ結果を得ることが出来るのでしょうか?

なお、現在の各バージョンと設定は下記の通りです。
設定に関してましては、エンコーディングに関係ある部分のみを
抽出しております。


■バージョン
Red Hat Linux :7.0.1J
PHP:4.2.2
PostgreSQL:7.2.2

■php.iniの設定
[mbstring]
mbstring.internal_encoding = SJIS
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none;

■bashrcの設定
PATH="$PATH":/usr/local/pgsql/bin
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
export PGCLIENTENCODING='SJIS'

■DBのエンコーディングの設定
EUC_JP

■HTMLのメタタグの設定
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">


何卒よろしくお願い致します。


*************************************************
株式会社イットアップ(ITUP Corp.)
住所:大阪市港区築港3-1-43
開発部 SE  荻原宣之 ( ogihara @ itup.co.jp )
TEL : 06-6571-1122 (代表)
FAX : 06-6571-1169
HP  : http://www.itup.co.jp
*************************************************




pgsql-jp メーリングリストの案内