Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membetulkan Pengecualian \'Nilai rentetan yang salah\' Apabila Memasukkan Emoji ke dalam MySQL?

Bagaimana untuk Membetulkan Pengecualian \'Nilai rentetan yang salah\' Apabila Memasukkan Emoji ke dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-07 14:36:12
asal
920 orang telah melayarinya

How to Fix

Menyelesaikan Pengecualian Nilai Rentetan Yang Salah Apabila Memasukkan Emoji

Apabila cuba memasukkan rentetan yang mengandungi aksara emoji ke dalam pangkalan data MySQL menggunakan JDBC, anda mungkin menghadapi pengecualian berikut:

java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\xBD\xF0\x9F...'
Salin selepas log masuk

Ralat ini timbul kerana set aksara utf8 lalai MySQL hanya menyokong aksara dalam Asas Pesawat berbilang bahasa. Untuk menyelesaikan isu ini, anda perlu mendayakan sokongan untuk set aksara utf8mb4, yang memanjangkan utf8 untuk meliputi satah lanjutan tempat aksara emoji berada.

Permulaan Sambungan

Tetapkan pengekodan sambungan kepada utf8mb4 dengan segera selepas mewujudkan sambungan:

DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "username", "password").prepareStatement("SET NAMES 'utf8mb4'");
Salin selepas log masuk

Pangkalan Data dan Jadual Pengubahsuaian

Kemas kini set aksara dan pengumpulan pangkalan data anda dan jadual yang terjejas kepada utf8mb4:

ALTER DATABASE `database` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Salin selepas log masuk

Kod Java

Pastikan kod Java anda menggunakan set charset utf8mb4 untuk pengekodan aksara rentetan. Contohnya, dengan Connector/J:

DriverManager.getConnection("jdbc:mysql://localhost:3306/database?characterEncoding=utf8mb4", "username", "password");
// ...
preparedStatement.setString(1, "walmart obama ?"); // Emoji characters should be supported now
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh mendayakan sokongan untuk utf8mb4 dan menyelesaikan pengecualian nilai rentetan yang salah apabila memasukkan aksara emoji ke dalam pangkalan data MySQL anda.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Pengecualian \'Nilai rentetan yang salah\' Apabila Memasukkan Emoji ke dalam MySQL?. 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