phpとoracleを用いたシステムでの文字化け
phpとoracleを用いたシステムでwebサイトを構築しているのですが、
ブラウザからアクセスしページ表示した際に、全角文字が文字化けしてしまいます。
◆環境
webサーバ:apache, php, oracleClient, PDO_OCI
DBサーバ:oracle
DBデータアクセス方法:PDO
◆事象の詳細
文字化けといっても必ず
????
とクエスチョン続きで表示されます。
上記webサーバのコマンドラインでphpのバッチを実行したところ、
コマンドライン上では正常に全角文字が表示されます。
まったく同じバッチをwebブラウザからhttpでアクセスを行ったところ、
文字化けしてしまいます。
ブラウザでの表示が悪いのではと思い、
phpのバッチ実行時に結果をテキスト出力させる処理を追加したのですが、
コマンドラインで実行した際は正常に出力され、ブラウザでアクセスした際は内容が文字化けして出力されました。
上記事象からアパッチが影響してるのではと考えられるので、
webサイトごと個別のhttpd.confの設定ファイルに NLS_LANG を設定したのですが、
結果は変わりませんでした。
文字コードの指定がない(正しくない)から文字化けするというよりは
DBサーバから取得する文字列をどう受け取って(扱って)いいのかわからないという感じがします。
何か解決策等、わかる方がいましたらご教授いただけますでしょうか。
お礼
ありがとうございます。読ませて頂きましたが酷いですね。 原因が分かったので自分で修正を試みましたが無理でした。 そこで検索すると同種のPHPアップロダで同じ文字化けに悩み修正方法を考察している掲示板があり、読みましたが完全に直すのは無理そうですね。 http://www.mc6800.org/PHP-BIN/F_STYLE/READ.PHP?key=1353941838 アップローダはサーバに負荷を掛けますので、これを機に消してしまおうと思います。