[PHP-users 6407] Re: RedHat7.2+ php4.1.2からpostgres(EUC-JP)とM$-SQLserver (SJIS )にアクセスする場合の漢字コード処理は?

Miki Ishida php-users@php.gr.jp
Fri, 22 Mar 2002 12:18:43 +0900


石田と申します。

"Tatsuya Matsuyama" <tatsuya@matsuyama-architect.co.jp> wrote:

> Windows上のIEに表示された
> charactorset=EUC-JPのフォームページから
> 以下のよう全角漢字を入力されると
> 
> 「あ」->「??」
> 「い」->「??」
> 
> のように変換された結果がM$-SQLserverに保管されます。


私も同様の現象に悩みましたが、
現在以下のようにして解決しています。

・環境
 RedHat7.1,Apache1.3.23,PHP4.1.2,FreeTDS0.53
 Windows2000,SQLServer2000

・[PHP-users 4880]を参考に、tdsのバージョンは4.2を使用

・php.iniの設定

[mbstring]
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none

・select結果を使用する場合は
mb_convert_encoding($name, "EUC-JP", "SJIS");
と変換する

・insert時は
mb_convert_encoding($name, "SJIS", "EUC-JP");
と変換する


tdsのバージョンを4.2にしないと、
EUC-JP,SJISの変換をしていても文字化けしました。


=========================
石田 美樹
ishida@fac.co.jp
=========================