Apabila bekerja dengan MySQL dan Java menggunakan penyambung JDBC 5.1, ia adalah perkara biasa untuk menghadapi isu pengekodan apabila berurusan dengan data UTF-8. Mari kita atasi senario tertentu di mana aksara kelihatan bercelaru semasa pemindahan data.
Isu timbul apabila membaca data UTF-8 daripada pangkalan data MySQL dan menulis/mengemas kininya ke pangkalan data MySQL lain menggunakan perkhidmatan pemasa Java. Selain itu, apabila melihat data yang dimuatkan melalui aplikasi web, aksara masih kelihatan tidak betul walaupun pengepala HTTP yang betul.
Untuk mendiagnosis masalah, adalah penting untuk memeriksa tetapan pangkalan data. Tetapan berikut menunjukkan bahawa pangkalan data menggunakan pengekodan UTF-8:
character_set_client-->utf8 character_set_connection-->utf8 character_set_database-->utf8 character_set_results-->utf8
Walau bagaimanapun, tetapan berikut mencadangkan kemungkinan isu:
character_set_server-->latin1
Menukar character_set_server tidak boleh dilaksanakan, tetapi satu lagi pendekatan boleh diambil. Untuk membaca data UTF-8 dengan betul daripada MySQL menggunakan penyambung JDBC, pastikan rentetan sambungan termasuk parameter berikut:
useUnicode=true&characterEncoding=UTF-8
Konfigurasi ini memastikan pemacu JDBC menggunakan pengekodan yang sesuai untuk komunikasi dengan pangkalan data. Dengan memasukkan parameter ini ke dalam rentetan sambungan, anda boleh menyelesaikan isu rasuah data.
Sementara parameter sambungan menangani aspek bacaan, menulis data UTF-8 ke pangkalan data kedua mungkin masih menimbulkan cabaran. Untuk menyelesaikannya, sahkan bahawa aplikasi web menghantar data dalam pengekodan UTF-8. Selain itu, pastikan pangkalan data kedua mempunyai tetapan pengekodan aksara yang betul (cth. character_set_database=utf8) untuk menerima dan menyimpan data dengan betul.
Atas ialah kandungan terperinci Mengapa Aksara UTF-8 Saya Bercelaru Apabila Memindahkan Data Antara Pangkalan Data MySQL Menggunakan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!