Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah yang perlu saya lakukan jika tanda soal dipaparkan semasa menanyakan aksara Cina Oracle dalam PHP?

Apakah yang perlu saya lakukan jika tanda soal dipaparkan semasa menanyakan aksara Cina Oracle dalam PHP?

PHPz
PHPzasal
2023-04-25 18:19:551655semak imbas

Apabila menggunakan PHP untuk menyambung ke pangkalan data Oracle, kadangkala aksara Cina yang ditanya akan memaparkan tanda soal Ini kerana set aksara lalai pangkalan data Oracle ialah set aksara ACSII Amerika dan tidak menyokong set aksara Cina. Dalam Oracle, jika kita perlu menyokong set aksara Cina, kita perlu menetapkan set aksara pangkalan data Oracle kepada set aksara UTF-8.

Untuk menyelesaikan masalah aksara Cina yang dipaparkan sebagai tanda soal, kita perlu terlebih dahulu menyemak sama ada set aksara pangkalan data Oracle ialah set aksara UTF-8. Ia boleh disoal melalui pernyataan SQL berikut:

SELECT * FROM nls_database_parameters WHERE parameter LIKE '%CHARACTERSET';

Jika set aksara yang ditanya bukan set aksara UTF-8, maka kita perlu menetapkan set aksara pangkalan data Oracle kepada set aksara UTF-8 .

Pertama sekali, dalam pangkalan data Oracle, empat set aksara perlu ditetapkan: set aksara pangkalan data, set aksara NCHAR pangkalan data, set aksara sesi dan set aksara NCHAR sesi.

Set aksara pangkalan data merujuk kepada set aksara data aksara bukan Unikod dalam pangkalan data Set aksara NCHAR pangkalan data merujuk kepada set aksara data aksara Unikod dalam pangkalan data; aksara yang digunakan oleh klien semasa mengakses Set pangkalan data Oracle, set aksara sesi NCHAR merujuk kepada set aksara Unicode yang digunakan oleh klien semasa mengakses pangkalan data Oracle.

Untuk menetapkan set aksara pangkalan data Oracle kepada set aksara UTF-8, anda perlu terlebih dahulu menentukan sama ada set aksara lalai sistem ialah set aksara UTF-8. Anda boleh membuat pertanyaan melalui arahan berikut:

locale -a

Jika set aksara UTF-8 tidak ditanya, anda boleh memasangnya melalui arahan berikut:

sudo apt-get install language-pack-zh-hans

Selepas pemasangan selesai, anda boleh menyemak sama ada melalui arahan berikut Berjaya pemasangan:

locale -a | grep zh_CN.utf8

Seterusnya, kita boleh menetapkan set aksara pangkalan data Oracle. Dengan mengandaikan bahawa SID pangkalan data Oracle kami ialah ORCL, maka kami boleh menetapkannya dengan arahan berikut:

sqlplus / as sysdba
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
shutdown immediate;
startup mount;
alter system enable restricted session;
alter database open;
ALTER DATABASE CHARACTER SET INTERNAL_USE UTF8;
shutdown immediate;
startup mount;
alter system enable restricted session;
alter database open;
exit;

Arahan ini menetapkan set aksara pangkalan data Oracle kepada set aksara UTF-8 dan memulakan semula perkhidmatan Oracle . Selepas tetapan selesai, kami boleh membuat pertanyaan melalui php, dan aksara Cina yang ditanya tidak akan memaparkan tanda soal lagi.

Walau bagaimanapun, perlu diingatkan bahawa apabila menetapkan set aksara, pangkalan data perlu disandarkan untuk mengelakkan kehilangan data. Selain itu, tetapan set aksara pangkalan data Oracle perlu dikendalikan dengan berhati-hati Operasi yang tidak betul boleh menyebabkan pangkalan data Oracle tidak beroperasi secara normal. Oleh itu, apabila menetapkan set watak, adalah disyorkan untuk berunding dengan profesional untuk memastikan ketepatan dan keselamatan operasi.

Ringkasnya, dengan menetapkan set aksara pangkalan data Oracle, masalah aksara Cina yang dipaparkan sebagai tanda soal boleh diselesaikan, membolehkan kami menggunakan set aksara Cina dengan lebih baik apabila menggunakan PHP untuk menyambung ke Oracle pangkalan data.

Atas ialah kandungan terperinci Apakah yang perlu saya lakukan jika tanda soal dipaparkan semasa menanyakan aksara Cina Oracle dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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