Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membaiki Pengekodan UTF-8 yang rosak dalam Pangkalan Data MySQL?

Bagaimana untuk Membaiki Pengekodan UTF-8 yang rosak dalam Pangkalan Data MySQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-07 07:58:13574semak imbas

How to Repair Corrupted UTF-8 Encoding in MySQL Databases?

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!

Kenyataan:
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