PHP が Oracle に接続すると中国語の文字化けの問題が発生する

巴扎黑
リリース: 2016-11-08 11:39:34
オリジナル
1594 人が閲覧しました

データベースはOracleを使用しています。PHPがOracleに接続する際、文字セットを指定すると中国語の文字化けが発生します。

PHP マニュアルを確認してください。oci_pconnect の 4 番目のパラメーターは charset です。このパラメーターを設定するだけです。

まず、Oracle の文字セットを取得し、「SELECT * FROM V$NLS_PARAMETERS;」を実行します。変数 NLS_CHARACTERSET は、必要な文字セットに対応します。たとえば、ここでは「AL32UTF8」です。したがって、最終的な PHP コードは次のようになります。

$conn = oci_pconnect('scott','tiger',
"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME=jocsbk)))",
'AL32UTF8');
ログイン後にコピー

ローカルの PHP ファイルは utf-8 を使用するため、直接出力するのが通常です。トランスコーディングは必要ありません。

さらに、関連情報によると、ローカルファイルがOracleへの接続に使用される文字セットと異なる場合、エンコード変換を実行する必要があります。

rreee

別の解決策もありますが、私は試していません。 Oracle は、クライアントが指定した文字セットに従ってデータを提供できます。つまり、ローカルの PHP ファイルが UTF-8 を使用している場合、oci_connect を使用するときに utf-8 を直接指定でき、エンコード変換も保存されます。

りー


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート