Menyahkod Isu Pengekodan Aksara dalam Storan Pangkalan Data
Situasi yang membingungkan timbul apabila memindahkan data tapak web lama ke skrip baharu. Aksara yang disimpan, yang asalnya diberikan dengan betul oleh skrip lama, kelihatan herot dalam skrip baharu. Selepas penyiasatan, didapati bahawa aksara disimpan dalam pengekodan yang luar biasa.
Skrip lama menggunakan enjin pangkalan data yang dipanggil TUBADBENGINE, yang tidak mempamerkan sebarang ciri pelik. Walau bagaimanapun, apabila data yang mengandungi aksara Parsi disisipkan menggunakan skrip lama, ia disimpan sebagai aksara yang kelihatan aneh dalam pangkalan data.
Sebaliknya, apabila data dimasukkan terus ke dalam pangkalan data menggunakan SQL, aksara yang betul dipelihara. Walau bagaimanapun, percubaan untuk mendapatkan semula data ini menggunakan skrip baharu menghasilkan aksara yang bercelaru.
Penyebabnya, seperti yang didedahkan dalam jawapan, ialah pengekodan aksara yang digunakan untuk sambungan pangkalan data. Dalam kes ini, sambungan pangkalan data telah ditetapkan kepada latin1, yang merupakan pilihan yang tidak sesuai untuk aksara Parsi. Akibatnya, aksara telah ditukar dengan salah semasa disimpan dalam pangkalan data.
Untuk menyelesaikan isu ini, kami perlu menukar data dalam pangkalan data kepada pengekodan aksara yang betul. Satu penyelesaian yang mungkin disediakan dalam jawapan ialah:
SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name
Pertanyaan ini boleh digunakan untuk mendapatkan semula data menggunakan pengekodan aksara yang betul. Kami kemudiannya boleh menggunakan hasil ini sebagai penyataan KEMASKINI untuk membetulkan data dalam pangkalan data secara kekal.
Setelah data dikodkan dengan betul, skrip baharu seharusnya boleh mendapatkan semula dan memaparkannya dengan betul.
Atas ialah kandungan terperinci Mengapa Watak Parsi Saya Bercelaru Selepas Penghijrahan Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!