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:
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:
UPDATE tnewsgroups SET fName = CONVERT(INARY CONVERT(fName USING latin1) USING utf8);
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!