Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Salah' MySQL Apabila Memasukkan Data UTF-8 melalui JDBC?

Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Salah' MySQL Apabila Memasukkan Data UTF-8 melalui JDBC?

Patricia Arquette
Lepaskan: 2024-12-25 21:01:16
asal
854 orang telah melayarinya

How to Fix the MySQL

Menyelesaikan masalah Ralat "Nilai Rentetan Salah" Semasa Memasukkan UTF-8 ke MySQL melalui JDBC

Ralat "Nilai rentetan yang salah" boleh berlaku apabila cuba memasukkan data UTF-8 ke dalam pangkalan data MySQL menggunakan JDBC. Ralat ini biasanya menunjukkan bahawa pengekodan aksara tidak dikonfigurasikan dengan betul.

Penjelasan Isu

Dalam kes anda, anda telah mengkonfigurasi sambungan JDBC anda dengan parameter berikut:

Connection conn = DriverManager.getConnection(url + dbName + "?useUnicode=true&characterEncoding=utf-8", userName, password);
Salin selepas log masuk

Konfigurasi ini menentukan bahawa aksara Unicode harus digunakan dan bahawa pengekodan aksara harus UTF-8. Walau bagaimanapun, mesej ralat menunjukkan bahawa nilai rentetan yang salah bermula dengan "xF0", iaitu aksara UTF-8 4-bait.

Penyelesaian

Secara lalai, Pengekodan utf8 MySQL hanya membenarkan aksara yang boleh diwakili dengan 3 bait dalam UTF-8. Untuk menyelesaikan isu ini, anda perlu menentukan pengekodan utf8mb4 untuk pangkalan data MySQL anda. Pengekodan ini menyokong aksara yang menduduki 4 bait dalam UTF-8.

Langkah untuk Menyelesaikan:

  1. Tukar pengekodan lajur lajur bermasalah kepada utf8mb4 menggunakan pertanyaan berikut:
ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR(255) CHARACTER SET utf8mb4;
Salin selepas log masuk
  1. Jika anda menggunakan MySQL 5.5 atau lebih baru, tetapkan sifat pelayan character_set_server kepada utf8mb4 dalam fail konfigurasi MySQL.
  2. Pastikan Connector/J mengesan secara automatik tetapan UTF-8 dengan meninggalkan pengekodan aksara daripada rentetan sambungan.

Tambahan Maklumat:

  • Untuk maklumat lanjut tentang set aksara Unicode dalam MySQL, rujuk dokumentasi rasmi MySQL: [https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html](https://dev.mysql.com/doc/refman/8.0/en/charset-unicode- sets.html)
  • Connector/J juga menyediakan arahan terperinci tentang mengkonfigurasi sokongan UTF-8: [https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-charset.html](https://dev.mysql.com/doc/connector-j/8.0/ en/connector-j-reference-charset.html)

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Salah' MySQL Apabila Memasukkan Data UTF-8 melalui JDBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan