Rumah > pangkalan data > tutorial mysql > Mengapa Aksara Parsi Saya Memaparkan Berbeza Antara Skrip Laman Web Lama dan Baharu?

Mengapa Aksara Parsi Saya Memaparkan Berbeza Antara Skrip Laman Web Lama dan Baharu?

Susan Sarandon
Lepaskan: 2024-12-26 11:46:10
asal
242 orang telah melayarinya

Why Do My Persian Characters Display Differently Between Old and New Website Scripts?

Percanggahan Pengekodan Aksara Pelik dalam Penyimpanan dan Pengambilan Data

Dalam usaha untuk menulis semula tapak web lama yang menggunakan aksara Parsi, anda telah menghadapi percanggahan ganjil antara cara data disimpan dan diambil. Skrip lama memaparkan aksara Parsi dengan betul, manakala skrip baharu mempamerkannya dengan pengekodan yang sama seperti pangkalan data, yang kelihatan herot.

Untuk memahami isu ini, penting untuk ambil perhatian:

  • Skrip lama bergantung pada TUBADBENGINE, yang menggunakan mekanisme tersendiri untuk pengekodan aksara.
  • Skrip baharu menggunakan CodeIgniter, yang mengendalikan pengekodan aksara secara berbeza.
  • Pangkalan data dikonfigurasikan dengan set aksara UTF-8 dan pengumpulan utf8_persian_ci.

Apabila anda memasukkan aksara Parsi menggunakan skrip lama, ia muncul sebagai urutan pelik seperti عمران dalam pangkalan data. Walau bagaimanapun, skrip lama mengambil dan memaparkannya dengan betul. Ini menunjukkan bahawa TUBADBENGINE menggunakan skema pengekodan berasingan, mungkin berdasarkan ISO-8859-1, yang tidak diiktiraf oleh skrip baharu.

Sebaliknya, jika anda memasukkan aksara Parsi secara terus ke dalam pangkalan data, ia disimpan seperti yang diharapkan dan diperoleh dengan betul oleh skrip baharu. Walau bagaimanapun, skrip lama kini memaparkannya sebagai tanda tanya (????). Ini kerana mekanisme penyahkodan aksara lama skrip menjangkakan pengekodan yang berbeza daripada yang digunakan oleh pangkalan data untuk sisipan langsung.

Penyelesaian terletak pada menukar data sedia ada dalam pangkalan data daripada pengekodan yang digunakan oleh TUBADBENGINE kepada UTF -8 pengekodan dijangka oleh CodeIgniter. Untuk mencapai ini:

  1. Laraskan sambungan pangkalan data untuk memastikan ia menggunakan pengekodan UTF-8.
  2. Tukar data dalam lajur yang terjejas menggunakan fungsi CONVERT. Contohnya:
UPDATE tnewsgroups SET fName = CONVERT(INARY CONVERT(fName USING latin1) USING utf8);
Salin selepas log masuk

Setelah data ditukar, kedua-dua skrip baharu dan lama hendaklah memaparkan aksara Parsi dengan betul.

Atas ialah kandungan terperinci Mengapa Aksara Parsi Saya Memaparkan Berbeza Antara Skrip Laman Web Lama dan Baharu?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan