[PHP-users 33155] 文字化けで困っています
marina.999.mina.10.ub @ nifty.com
marina.999.mina.10.ub @ nifty.com
2008年 1月 25日 (金) 11:42:10 JST
皆さん今日は。
渡辺と言います。
4、5年前に、Apache+PHP+PostgreSQL でWEB開発をしていました。
最近また、開発する事になり環境を構築しているのですが、文字化け
でかなり悩んでいます。
今更、文字化けで投稿するのもお恥ずかしい限りなのですが、どうに
も解決できず、皆さんのお力をお貸し下さい。
環境は、Solaris9+Apache/2.0.61+PHP/4.4.7+PostgreSQL/7.4.18 です。
各configureは以下の順番で実施、PostgreSQLでDB構築後、Windows側で
insert文を作成し、ftp(asc)で転送し、EUCへ変換してDBに挿入してい
ます。
そして、DBを検索して表示するPHPソースをFTP(asc)で転送しブラウザ
で確認します。
そして、php.ini の設定を以下の設定内容やら様々なパターンで変更し
ては、画面に表示させたのですが、必ず、DB文字が化けるか、PHPソース
に記載した文字が化けるかどちらかです。
===> Apache configure
./configure \
--prefix=/usr/local/httpd-2.0.61 \
--enable-layout=Apache \
--enable-modules=all \
--enable-rewrite --enable-ssl --enable-so
===> PostgreSQL configure
./configure \
--prefix=/export/db/postgresql-7.4.18 \
--enable-multibyte=EUC_JP \
--with-perl \
--enable-syslog \
--without-readline
ln -s /export/db/postgresql-7.4.18 /export/db/pgsql
PGLIB=/home/db/pgsql/lib
PGDATA=/home/db/pgsql/data
PG=/home/db/pgsql
initdb -E EUC_JP
createdb -E EUC_JP
createuser -a -d watanabe
createdb -E EUC_JP -O watanabe testdb
===> PHP configure
./configure \
--prefix=/usr/local/php-4.4.7 \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-pgsql=/export/db/pgsql \
--enable-mbstring \
--enable-mbregex \
--with-gettext=/usr \
--with-iconv=/usr/local
mbstring
Multibyte Support enabled
Japanese support enabled
Simplified chinese support enabled
Traditional chinese support enabled
Korean support enabled
Russian support enabled
HTTP input encoding translation enabled
Multibyte (japanese) regex support enabled
output_buffering = On
output_handler = mb_output_handler
default_charset = "SJIS"
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbregex.encoding=EUC-JP
===>PHP ソース
HTML文は敢えて入れていません。
また、heder関数は使用していません。
if (!($cn = pg_connect("host=localhost dbname=testdb user=watanabe")))
{
die;
}
// PostgreSQL Select
$sql = "select * from tbl_user";
if (!($rs = pg_exec($sql))) {
die;
}
// PostgreSQL Get Records
$ct = pg_numrows($rs);
for ($i = 0; $i < $ct; $i++) {
$item = pg_fetch_array($rs, $i);
print ${item[0]} ;
print ${item[1]} ;
print ${item[2]} ;
}
// PostgreSQL Disconnect
pg_close($cn);
PHP-users メーリングリストの案内