Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menukar Aksara Latin1 kepada UTF-8 dalam Jadual Pangkalan Data UTF-8?

Bagaimanakah Saya Boleh Menukar Aksara Latin1 kepada UTF-8 dalam Jadual Pangkalan Data UTF-8?

Susan Sarandon
Susan Sarandonasal
2024-12-02 21:40:12702semak imbas

How Can I Convert Latin1 Characters to UTF-8 in a UTF-8 Database Table?

Menukar Aksara Latin1 kepada UTF8 dalam Jadual UTF8

Soalan anda menerangkan isu di mana data yang dimasukkan sebelum ini mengandungi diakritik telah rosak disebabkan set aksara yang salah pengendalian.

Masalah:

Skrip PHP anda tidak menyatakan set aksara UTF-8 untuk komunikasi pangkalan data, membawa kepada aksara Latin1 disimpan dalam jadual UTF-8. Ini menyebabkan aksara dipaparkan secara tidak betul sebagai jujukan "Ã".

Penyelesaian:

Penyelesaian terletak pada penggunaan fungsi MySQL yang dipanggil convert() untuk menghantar secara eksplisit data daripada pengekodan Latin1 kepada UTF-8. Berikut ialah contoh pertanyaan:

UPDATE `table` SET `name` = convert(cast(convert(`name` using latin1) as binary) using utf8)

Penjelasan:

  • Fungsi convert() mula-mula menghantar nilai lajur nama semasa ke pengekodan Latin1 menggunakan penukar latin1 .
  • Rentetan binari yang terhasil kemudiannya dibuang semula ke rentetan menggunakan rentetan binari penukar.
  • Akhir sekali, rentetan ditukar kepada UTF-8 menggunakan penukar utf8.

Proses penukaran ini memastikan bahawa mana-mana aksara Latin1 yang rosak ditukar dengan betul kepada UTF-8, mengekalkan paparan diakritik yang betul. Ambil perhatian bahawa penukaran dalaman menggunakan fungsi convert() mungkin tidak diperlukan dalam semua kes, bergantung pada rasuah data tertentu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Aksara Latin1 kepada UTF-8 dalam Jadual Pangkalan Data UTF-8?. 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