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

Tatsuya Matsuyama php-users@php.gr.jp
Wed, 20 Mar 2002 21:53:22 +0900


松山です。

----- Original Message -----
Sent: Tuesday, March 19, 2002 11:04 PM
Subject: [PHP-users 6322] Re: RedHat7.2+ php4.1.2 からpostgres(EUC-JP) とM$-SQLserver ( SJIS )にアクセスする場合の漢字コード処理
は?


>
> mb_convert_encoding($name, "SJIS", "auto");
>
> ↑こうするとちゃんと変換されます。
>

レスありがとうございます。

残念ながら、上記でやっても
希望の動作とはなりませんせでした。

今日、一日かかって、様々な条件で試しましたが、
ダメでした。

selectした結果は、
M$-SQL上で入力された漢字については、
正常に表示させることができました。

insertは何をやってもダメでした。

Windows上のIEに表示された
charactorset=EUC-JPのフォームページから
以下のよう全角漢字を入力されると

「あ」->「??」
「い」->「??」

のように変換された結果がM$-SQLserverに保管されます。

phpのマニュアルには、
http://www.php.net/manual/ja/ref.mbstring.php
「注意 PHPでデータベースを使用する場合、性能を向上させるためにデータベー スとPHPの内部エンコーディングについて同じ文字エンコーディン
グを使用 することを推奨します。 」
とあります。
とは、言われても、既存のデータはSJISで、phpと新規のpostgresはEUC...

このページをよく読むと、
「注意 PHP3-i18nのユーザにとっては、mbstringの出 力変換は、PHP3-i18nとは異なっています。文字エンコーディング は、出力のバッファリン
グ機能を使用して変換されます。 」
とあります。

そういえば、output_buffering    = Onは
あまり変更してテストしませんでした。
このヘンがまずかったのでしょうか?

どなたか、
漢字コードの異なる2つのデータベースを
phpで利用されている場合の動作の考え方を
紹介いただけないでしょうか。

よろしくお願いいたします。

# アイコンが表示されない件は、同じページに
# 「HTTP 入出力の文字エンコーディング変換はバイナリデータも変換して しまいます。HTTP入出# 力にバイナリデータが使用される場合、ユーザ
は、 文字エンコーディング変換を制御する必要が# あります。 」
# とあり、コレが原因なのかもしれません。