ホームページ  >  記事  >  バックエンド開発  >  Oracle への PHP 接続が文字化けしている場合はどうすればよいですか?

Oracle への PHP 接続が文字化けしている場合はどうすればよいですか?

藏色散人
藏色散人オリジナル
2022-10-19 09:31:292105ブラウズ

Oracle への PHP 接続での文字化けコードの解決策: 1. 「select * from V$NLS_PARAMETERS;」コマンドを実行して、Oracle の文字セットを取得します。 2. 変数「NLS_CHARACTERSET」を対応する値に変更します。文字セット; 3. ローカルの PHP ファイルを utf-8 に設定するだけです。

Oracle への PHP 接続が文字化けしている場合はどうすればよいですか?

このチュートリアルの動作環境: Windows 7 システム、PHP バージョン 8.1、Dell G3 コンピューター。

Oracle への PHP 接続が文字化けしている場合はどうすればよいですか?

php は oracle に接続して、文字化けを避けるために文字セットを設定します。

データベースは oracle を使用します。php が oracle に接続するときは、次のように指定するのが最善です。文字セット。

PHP マニュアルを確認してください。oci_connect の 4 番目のパラメーターは charset であり、これがキーです。

まず、oracle の文字セットを取得し、「select * from V$NLS_PARAMETERS;」を実行します。変数 NLS_CHARACTERSET は、必要な文字セットに対応します。たとえば、ここでは「ZHS16GBK」です。

最終的な PHP コードは次のとおりです:

$c1 = oci_connect("scott", "tiger", $db, 'zhs16gbk');

私のローカル PHP ファイルは utf-8 を使用しているため、取得したコードは次のように変換する必要があります:

while ($dat = oci_fetch_row($cur)) {    print_r(iconv('gb2312', 'utf-8', $dat[0]));  }

Update:

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

$c1 = oci_connect("scott", "tiger", $db, 'UTF8');

Php コード

while ($dat = oci_fetch_row($cur)) {    print_r($dat[0]);  }

推奨学習:「PHP ビデオ チュートリアル

以上がOracle への PHP 接続が文字化けしている場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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