[PHP-users 6321] RedHat7.2+php4.1.2からpostgres(EUC-JP)とM$-SQLserver(SJIS)にアクセスする場合の漢字コード処理は?
Tatsuya Matsuyama
php-users@php.gr.jp
Tue, 19 Mar 2002 22:53:06 +0900
松山と申します。
FAQのような気もしますが、
よく分からないのでどなたか教えて下さい。
現在、件名のような構成でphp4.1.2で
WebDBを開発しています。
クライアントはWindosのみです。
php4.1.2は--enable-mbstringでコンパイルされていて、
各種マルチバイトの処理は行える状態です。
M$-SQLserverには既存のデータベースがあり
これらの情報をFreeTDSで流用しながら、
*別途*RH7.2J+Postgresで新たなDBを追加していこうと
思っています。
テスト環境では、
以下のようなphp.ini(変更・追加部分抜粋)でapacheから起動されています。
magic_quotes_gpc = Off
magic_quotes_runtime = Off
;mbregex.encoding = EUC-JP
;jstring.default_encoding = EUC-JP
#output_handler = mb_output_handler;
[mbstring]
mbstring.detect_order = AUTO
mbstring.internal_encoding = EUC-JP
#mbstring.http_output = SJIS
mbstring.http_output = EUC-JP
mbstring.http_input = Auto
phpがpostresとやり取りする場合は、
EUC-JPで統一しておけば問題はないと思いますが、
このままでは、M$-SQLserverにinsertする際に文字化け
(というよりWindos上のenterpriseMangerで漢字を確認できない状態?)が起こります。
そこで、
insertなどを施す前に
mb_convert_encoding($name, "SJIS");
でSJISに変換してからinsertしてみたのですが、
相変わらずenterpriseMangerで閲覧すると文字化けした状態です。
また、上記のpohp.iniで
mbstring.http_output = SJIS
の設定を行うとphpinfoのtitileタグが文字化けし、
phpやzendのアイコンが表示されなくなってしまい
不要な変換を行っているようにも見受けられます。
M$-SQLserverにはテーブル名やフィールド名にも漢字が使われていますが、
EUC-JPで書かれたphpから正常にアクセスできるでしょうか?
このような場合は、どのような方針をとるのが良策でしょうか。
よろしくお願いします。