UTF-8 Ketidakpadanan Aksara: Mengenalpasti dan Menyelesaikan Isu
Ikhtisar
Bekerja dengan Set aksara UTF-8 boleh menimbulkan cabaran apabila mengurus data teks. Artikel ini meneroka pelbagai isu yang boleh timbul dan menyediakan penyelesaian untuk membantu menyelesaikannya.
Simptom Masalah
-
Watak yang tidak dijangka: Asia watak yang muncul sebagai ???? atau aksara seperti "Señor" yang muncul sebagai "Se?or".
-
Mojibake (omong kosong): Watak aneh seperti "Señor" atau "æ–°æµªæ–°é— »" untuk "新浪新闻".
-
Hitam berlian: Aksara dipaparkan sebagai berlian hitam dengan tanda soal, cth., "Se�or".
-
Data terpenggal: Kehilangan atau pemotongan aksara, cth., "Se" dan bukannya "Señor".
-
Isih salah: Data tidak diisih dengan betul walaupun ia kelihatan betul secara visual.
Punca dan Penyelesaian
Data Dipenggal:
- Pastikan bahawa data yang akan disimpan dikodkan sebagai UTF-8mb4.
- Sahkan bahawa sambungan semasa menulis dan membaca menggunakan UTF-8/UTF-8mb4.
Black Diamonds:
- Kes 1 (bait asal bukan UTF-8): Kodkan data sebagai UTF-8 dan pastikan sambungan (atau SET NAMES) ditetapkan kepada UTF-8/UTF-8mb4 semasa kedua-dua sisipan dan pemilihan. Sahkan bahawa lajur pangkalan data ialah CHARACTER SET UTF-8 (atau UTF-8mb4).
- Kes 2 (bait asal ialah UTF-8): Semak sama ada sambungan semasa pemilihan ditetapkan kepada UTF-8/UTF- 8mb4 dan sahkan set aksara lajur pangkalan data.
Soalan Markah:
- Enkodkan data sebagai UTF-8/UTF-8mb4.
- Tetapkan set aksara lajur pangkalan data kepada UTF-8 (atau UTF-8mb4).
- Pastikan sambungan yang digunakan semasa pengambilan data adalah UTF-8.
Mojibake/Double Encoding:
- Enkodkan data sebagai UTF-8.
- Tetapkan sambungan semasa penyisipan dan pemilihan ke UTF-8/UTF-8mb4.
- Isytiharkan lajur pangkalan data sebagai CHARACTER SET UTF-8 (atau UTF-8mb4).
- Gunakan dalam HTML.
Isih Salah:
- Pilih pengumpulan yang sesuai yang sepadan dengan keperluan pengisihan anda.
- Singkirkan pengekodan berganda isu dengan menyemak bahawa HEX aksara sepadan dengan UTF-8 yang dijangkakan pengekodan.
Pemulihan Data
- Dalam kes pemotongan atau kehilangan data, data biasanya tidak boleh dipulihkan.
- Untuk yang lain isu (mis., pengekodan mojibake/double, berlian hitam), ikut pembetulan yang digariskan di atas untuk memulihkan data.
Atas ialah kandungan terperinci Bagaimana Mengenalpasti dan Menyelesaikan Ketakpadanan Pengekodan Aksara UTF-8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!