Rumah >pangkalan data >tutorial mysql >Mengapa Tanda Soalan Muncul Daripada Teks Arab Apabila Menyimpan Data dalam MySQL?

Mengapa Tanda Soalan Muncul Daripada Teks Arab Apabila Menyimpan Data dalam MySQL?

Barbara Streisand
Barbara Streisandasal
2024-12-10 14:19:11217semak imbas

Why are Question Marks Appearing Instead of Arabic Text When Storing Data in MySQL?

Menyimpan Data Arab dalam Pangkalan Data MySQL

Masalah:

Apabila cuba menyimpan teks Arab dalam pangkalan data MySQL, tanya tanda ("????") muncul dan bukannya aksara yang dimaksudkan.

Reka bentuk Jadual:

CREATE DATABASE mydb
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

CREATE TABLE `categories` (...);

Pemerhatian:

  • Pangkalan data, jadual dan lajur ditetapkan untuk menggunakan pengekodan aksara UTF-8.
  • Data tidak dimasukkan dengan betul, mengakibatkan persoalan markah.

Penyelesaian:

Untuk menyelesaikan isu ini, pastikan langkah berikut dipatuhi:

  1. Sahkan Karakter Tetapan:

    • Laksanakan pertanyaan berikut untuk menyemak set aksara dan tetapan penyusunan untuk pangkalan data, jadual dan lajur:

      • Pangkalan Data: SELECT default_character_set_name DARI information_schema.SCHEMATA S WHERE schema_name = "schemaname";
      • Jadual: PILIH CCSA.character_set_name DARIPADA information_schema.TABLES T, information_schema.COLLATION_CHARACTER_SET_APPLICABILITY CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "schemaname" DAN "tablename";
      • Lajur: PILIH character_set_name DARI information_schema.COLUMNS C WHERE table_schema = "schemaname" AND table_name = "tablename" AND column_name = "columnname";
  2. Set Tetapan UTF-8 Secara Manual (jika Diperlukan):

    • Jika tetapan tidak ditetapkan kepada UTF-8, gunakan arahan berikut:

      • Pangkalan Data: ALTER DATABASE schemaname CHARACTER SET utf8 COLLATE utf8_general_ci;
      • Jadual: ALTER TABLE nama jadual TUKAR KE SET WATAK utf8 COLLATE utf8_general_ci;
      • Lajur: ALTER TABLE nama jadual UBAHSUAI nama lajur VARCHAR(n) SET KARAKTER utf8;
  3. Masukkan Data Arab Secara Manual:

    • Gunakan alat yang menyokong teks Arab sisipan, seperti SQLYog atau phpMyAdmin.
  4. Pilihan Klik Kanan (jika Menggunakan SQLYog):

    • Klik kanan pada pangkalan data, jadual , atau lajur dan pilih "Ubah".
    • Tetapkan set aksara kepada UTF-8 dan himpunan kepada UTF-8_general_ci.

Dengan mengikuti langkah-langkah ini, aksara Arab yang betul akan disimpan dan diambil daripada pangkalan data MySQL tanpa sebarang tanda soal.

Atas ialah kandungan terperinci Mengapa Tanda Soalan Muncul Daripada Teks Arab Apabila Menyimpan Data dalam MySQL?. 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