Membaiki Pengekodan UTF-8 yang rosak
Artikel ini membincangkan isu membaiki pengkodean UTF-8 yang rakus dalam pangkalan data MySQL. Masalahnya menjelma sebagai aksara bercelaru seperti "î" apabila PHP 5 digunakan dengan pengumpulan utf8_general_ci dan pengepala UTF-8 yang betul ditetapkan.
Pemetaan Aksara Rusak
Fungsi berikut boleh digunakan untuk memetakan contoh aksara yang rosak kepada UTF-8 yang betul aksara:
function fixUtf8($string) { $replacements = array( "î" => "®", "ÃÂ" => "í", "ü" => "ü" ); return str_ireplace(array_keys($replacements), array_values($replacements), $string); }
Pembuangan dan Pemulihan Pangkalan Data
Pendekatan lain melibatkan lambakan data pangkalan data dan memuatkannya semula untuk menyelesaikan aksara UTF-8 yang dikod dua kali:
mysqldump -h DB_HOST -u DB_USER -p DB_PASSWORD --opt --quote-names \ --skip-set-charset --default-character-set=latin1 DB_NAME > DB_NAME-dump.sql mysql -h DB_HOST -u DB_USER -p DB_PASSWORD \ --default-character-set=utf8 DB_NAME < DB_NAME-dump.sql
Kaedah ini biasanya menyelesaikan isu dengan berkesan.
Atas ialah kandungan terperinci Bagaimana untuk Membaiki Pengekodan UTF-8 yang rosak dalam Pangkalan Data MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!