Pengecualian Pengekodan: "Nilai Rentetan Salah" dengan Emoji dalam Java-MySQL
Dalam aplikasi Java menggunakan MySQL, pengecualian "java. sql.SQLException: Nilai rentetan salah: 'xF0x9Fx91xBDxF0x9F...'" mungkin ditemui apabila memasukkan rentetan yang mengandungi aksara emoji. Ralat ini berlaku disebabkan oleh perbezaan dalam pengekodan aksara.
Nilai rentetan yang dimaksudkan mengandungi "walmart obama ??", di mana "???" mewakili emoji. Dalam pangkalan data, pembolehubah tempat rentetan dimasukkan ditakrifkan sebagai varchar(255) SET WATAK utf8 COLLATE utf8_general_ci NOT NULL. Walau bagaimanapun, versi MySQL yang digunakan oleh aplikasi hanya menyokong aksara satah berbilang bahasa (BMP) asas dalam pengekodan UTF-8. Aksara emoji, yang berada di luar BMP, tidak dapat diwakili dengan betul dalam pengekodan ini.
Untuk menyelesaikan isu ini, anda perlu menukar kepada pengekodan UTF-8mb4, yang menyokong aksara tambahan. Ini melibatkan membuat pelarasan berikut:
Dengan membuat perubahan ini, aplikasi anda akan dapat mengendalikan aksara emoji dengan betul menggunakan pengekodan UTF-8mb4, menyelesaikan pengecualian "Nilai rentetan yang salah".
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Nilai Rentetan Salah\' Semasa Memasukkan Emoji ke dalam Pangkalan Data MySQL di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!