Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh menukar aksara Latin1 dengan betul dalam Jadual MySQL UTF8 kepada UTF8?

Bagaimanakah saya boleh menukar aksara Latin1 dengan betul dalam Jadual MySQL UTF8 kepada UTF8?

DDD
DDDasal
2024-12-09 04:29:09794semak imbas

How Can I Correctly Convert Latin1 Characters in a UTF8 MySQL Table to UTF8?

Tukar Aksara Latin1 dalam Jadual UTF8 kepada UTF8

Anda telah menghadapi isu di mana aksara dengan diakritik (cth., "Jáuò Iñe" ) telah tersilap disimpan dalam jadual UTF8 kerana tiada Panggilan "mysql_set_charset('utf8')".

Untuk menyelesaikan masalah ini, anda cuba menukar baris yang terjejas menggunakan "mb_convert_encoding" dan "iconv." Walau bagaimanapun, kaedah ini gagal menangkap aksara melebihi aksara "haram" pertama (diwakili sebagai "ă" dalam contoh).

Pendekatan yang disyorkan untuk membetulkan data ialah menggunakan fungsi MySQL:

convert(cast(convert(name using  latin1) as binary) using utf8)

Penjelasan:

  1. luar fungsi tukar menukar data daripada perwakilan binari semasanya kepada rentetan menggunakan set aksara UTF-8.
  2. Fungsi dalaman menukar data daripada perwakilan Latin-1 asalnya kepada binari perwakilan.
  3. Fungsi cast memastikan penukaran dalaman mengembalikan binari nilai.

Dalam sesetengah kes, penukaran dalaman mungkin tidak diperlukan, kerana data mungkin sudah disimpan dalam format binari yang sesuai untuk penukaran kepada UTF-8. Menguji kedua-dua pilihan harus menentukan pendekatan yang betul untuk situasi anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menukar aksara Latin1 dengan betul dalam Jadual MySQL UTF8 kepada UTF8?. 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