Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menetapkan set aksara Oracle kepada gbk dalam php

Bagaimana untuk menetapkan set aksara Oracle kepada gbk dalam php

PHPz
Lepaskan: 2023-04-12 14:26:22
asal
924 orang telah melayarinya

Dalam pembangunan PHP, pangkalan data adalah pautan yang tidak dapat dielakkan. Oracle ialah sistem pengurusan pangkalan data hubungan biasa (RDBMS), yang juga mempunyai sokongan lanjutan yang sepadan dalam PHP. Tetapi kadangkala kita menghadapi beberapa masalah pelik, seperti aksara bercelaru apabila mengeluarkan bahasa Cina dalam Oracle.

Masalah ini biasanya disebabkan oleh ketidakpadanan antara set aksara Cina dan set aksara pelayan Oracle. Apabila anda memasukkan data Cina ke dalam Oracle, Oracle akan menggunakan set aksaranya sendiri secara lalai, iaitu set aksara AL32UTF8. Jika set aksara lalai yang digunakan oleh skrip PHP anda ialah GBK, maka aksara Cina akan bercelaru dalam Oracle. Jadi, kita perlu membuat beberapa tetapan untuk menyelesaikan masalah ini.

Nota: Semua operasi berikut perlu dilakukan dengan keistimewaan pentadbir.

1. Ubah suai set aksara Oracle

Pertama, kita perlu menyemak set aksara yang disokong oleh Oracle. Buka klien Oracle dan sambungkan ke pangkalan data yang ingin kami kendalikan. Gunakan pernyataan SQL berikut untuk menanyakan set aksara yang disokong:

select * from nls_database_parameters where parameter like '%CHARACTERSET';
Salin selepas log masuk

Jika anda menggunakan Oracle 11g dan ke atas, anda perlu melaksanakan pertanyaan berikut:

select * from v$nls_parameters where parameter like '%CHARACTERSET';
Salin selepas log masuk

Anda akan melihat set hasil , yang mengandungi semua set aksara yang disokong oleh Oracle. Kita perlu menukar set aksara kepada GBK.

Dalam Oracle, set aksara disusun mengikut tempat dan ID charset. Kita perlu mengubah suai set aksara apabila tempat adalah SIMPLIFIED CHINESE_CHINA dan pengecam set aksara ialah ZHS16GBK. Laksanakan pernyataan SQL berikut:

alter system set NLS_CHARACTERSET='ZHS16GBK' scope=spfile;
Salin selepas log masuk

Perintah ini akan mengubah suai fail parameter (spfile) pelayan pangkalan data Oracle dan menukar set aksara kepada GBK. Mulakan semula perkhidmatan Oracle untuk pengubahsuaian berkuat kuasa.

2. Ubah suai set aksara PHP

Seterusnya, kita perlu mengubah suai set aksara kepada GBK dalam PHP. Dalam PHP, kita boleh menggunakan fungsi iconv_set_encoding() untuk mengubah suai set aksara.

Kami boleh mengubah suai set aksara lalai PHP dalam fail permulaan PHP (php.ini). Cari dua baris berikut:

;default_charset =
;iconv.input_encoding =
Salin selepas log masuk

Tukarnya kepada:

default_charset = "GBK"
iconv.input_encoding = "GBK"
Salin selepas log masuk

Supaya PHP akan menggunakan set aksara GBK secara lalai.

Jika tapak web anda disediakan menggunakan pelayan web seperti Apache, anda juga boleh mengubah suai set aksara PHP dalam fail konfigurasi pelayan web. Tambahkan arahan berikut pada fail konfigurasi Apache:

php_value default_charset "GBK"
php_value iconv.input_encoding "GBK"
Salin selepas log masuk

Simpan dan mulakan semula perkhidmatan Apache.

3. Uji

Sekarang mari kita uji sama ada tetapan kami berkuat kuasa.

Buat fail PHP baharu test.php dan masukkan kod berikut:

<?php
$conn = oci_connect(&#39;用户名&#39;, &#39;密码&#39;, &#39;地址/SID&#39;);
$sql = "SELECT * FROM 表名 WHERE ROWNUM < 10";
$stmt = oci_parse($conn, $sql);
oci_execute($stmt);
while ($row = oci_fetch_array($stmt, OCI_ASSOC)) {
    echo "<pre class="brush:php;toolbar:false">";
    var_dump($row);
    echo "
"; } ?>
Salin selepas log masuk

Selepas melaksanakan fail, kita akan melihat output data Cina biasa pada skrin.

Ringkasan

Apabila mengendalikan pangkalan data Oracle dalam PHP, aksara Cina bercelaru adalah masalah yang lebih sukar. Dengan mengubah suai set aksara Oracle dan PHP, kami boleh menyelesaikan masalah ini.

Perlu diingatkan bahawa tetapan yang terlibat dalam artikel ini hanyalah salah satu kaedah. Dalam aplikasi praktikal, kita perlu memilih penyelesaian yang sesuai mengikut situasi tertentu.

Atas ialah kandungan terperinci Bagaimana untuk menetapkan set aksara Oracle kepada gbk dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan