[PHP-users 21462]OracleDB接続時の文字化けについて。

Kengo Yamaguchi mkengo @ wism-mutoh.co.jp
2004年 4月 22日 (木) 15:38:56 JST


いつも勉強させていただいております。山口@札幌 と申します。

RedHat8.0 + Apache 2.0.40 + PHP4.2.2 の環境から、
Oracle9i のデータベースにSQLを投げて、
結果を表示するCGIツールを作ったのですが、
WHERE句に日本語が入ると正しくマッチングしません。

確認のため、日本語データを同じツールでテーブルにINSERTしてみると、
データベースには以下のように化けたデータが格納されました。

「あいうえお」→「$"$$$&$($*」
「アイウエオ」→「%"%$%&%(%*」

規則性のありそうな化け方なので、文字コードの問題だろうと思い、
いろいろとコード変換を試してみたのですが、
思い通りのデータとしてINSERTすることができません。

何か手がかりのようなものでも構いませんので、
解決に向けてのお知恵をお貸し頂ければ嬉しいです。

関係のありそうなphp.ini の設定を、以下に列記しておきます。
その他必要な確認事項がありましたら、ご指摘ください。

[mbstring]
output_buffering = On
output_handler = mb_output_handler
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;
mbstring.func_overload = 0
mbstring.script_encoding = auto

# スクリプトの最初に、
#  putenv(NLS_LANG=JAPANESE_JAPAN.JA16EUC);
# で、環境変数を設定しています。

ではでは。

◆◇◆  山口 謙吾 --- <mkengo @ wism-mutoh.co.jp>



PHP-users メーリングリストの案内