ホームページ >バックエンド開発 >PHPチュートリアル >PHP による Oracle へのアクセスでコードが文字化けする!解決

PHP による Oracle へのアクセスでコードが文字化けする!解決

WBOY
WBOYオリジナル
2016-06-13 13:46:541067ブラウズ

PHP による Oracle へのアクセスが文字化けします。
Oracle 11 環境: NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK;

PHP 5 default_charset "gb2312"

接続文字: $conn = oci_connect('scott', 'tiger', 'demo ', 'zhs16gbk');

//注: 次の 'zhs16gbk' は、追加してもしなくても機能しません。また、'zhs16cdb231280' または 'utf-8 に変更すると機能しません。 '。

SQL*Plus: 問題なし
PHP: 問題自体なし
PHP からの挿入...問題なし

Web ページは IE7 (IE6 も試しました) 、エンコードは簡体字中国語 GB2312 です。

クエリできる結果は英語で正常に表示されますが、漢字がすべて文字化けしてしまいます。数日間苦労しましたが、まだ理解できません。経験のある方は教えていただけますか。よろしくお願いします!

環境: Vista+Oracle 11+Php 5+Apache 2.2.8
XPでも試してみましたが、うまくいきませんでした。


-----解決策---------
Oracle マニュアルでキャラクタ セットの設定を自分で確認する必要があります。
2 番目は、データベースのキャラクタ セットがページ出力のキャラクタ セットと一致している必要があります。
-----解決策---------
表示---「エンコーディング---」 自動選択
は通常 utf-8 です
------解決策------
メタ http-equiv= を追加します。 "Content-Type" content="text/html; charset=utf-8">
以上です
ファイルが utf-8 ではないためだと思います

------解決策---------環境変数を追加します
NLS_NCHAR= ZHS16GBK

------解決策---------環境変数
NLS_LANG=AMERICAN_AMERICA を追加します。 ZHS16GBK
マシンを再起動します

------解決策---------



------解決策---------別の場所は
データベーステーブルです。 utf-8 の定義は?
コードを投稿して見てください。推測しても意味がありません
そうすることで、より明確になります。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。