Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Membetulkan Ralat 'Nilai rentetan yang salah' Apabila Memasukkan Data UTF-8 ke MySQL melalui JDBC?
Mengendalikan Nilai Rentetan Yang Salah Apabila Memasukkan UTF-8 ke MySQL melalui JDBC
Apabila cuba memasukkan data UTF-8 ke dalam pangkalan data MySQL menggunakan JDBC, anda mungkin menghadapi mesej ralat, "Nilai rentetan salah: 'xF0x90x8Dx83xF0x90...'" Ralat ini sering berlaku apabila teks yang dimasukkan mengandungi aksara yang tidak boleh diwakili dalam set aksara utf8 MySQL.
Manakala tetapan sambungan anda termasuk penggunaan Unicode ("useUnicode=true") dan Pengekodan UTF-8 ("characterEncoding=utf-8"), pengekodan utf8 MySQL sahaja menyokong aksara Unicode yang boleh diwakili dengan 3 bait dalam UTF-8. Watak yang menyebabkan ralat, walau bagaimanapun, memerlukan 4 bait.
Penyelesaian:
Untuk menyelesaikan isu ini, anda mempunyai dua pilihan:
Perhatikan bahawa Connector/J, yang biasa digunakan untuk sambungan JDBC dengan MySQL, lalai kepada Unicode 3-bait. Oleh itu, adalah disyorkan untuk meninggalkan pengekodan aksara daripada rentetan sambungan anda dan mengkonfigurasi pelayan MySQL dengan character_set_server=utf8mb4 untuk membenarkan Connector/J mengesan secara automatik tetapan UTF-8.
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Nilai rentetan yang salah' Apabila Memasukkan Data UTF-8 ke MySQL melalui JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!