Mengapa Saya Mendapat Ralat \'Nilai Rentetan Salah\' Semasa Memasukkan Emoji ke dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-11-27 09:59:10
asal
435 orang telah melayarinya

Why Do I Get

Tidak Dapat Memasukkan Emoji ke dalam MySQL: Nilai Rentetan Salah ['xF0x9Fx91xBDxF0x9F...']

Apabila cuba memasukkan nilai rentetan yang mengandungi emojis ke dalam pangkalan data MySQL, pengguna mungkin menghadapi ralat berikut: java.sql.SQLException: Nilai rentetan salah: 'xF0x9Fx91xBDxF0x9F...'. Isu ini berpunca daripada pengehadan pengekodan pangkalan data.

Memahami Pengekodan Emoji

Emoji, seperti makhluk asing luar angkasa dan patah hati, biasanya diwakili sebagai titik kod Unikod. Titik kod ini mungkin berada di luar Satah Berbilang Bahasa Asas (BMP), yang disokong oleh pengekodan utf8 MySQL. Akibatnya, aksara ini tidak boleh disimpan dalam lajur utf8.

Penyelesaian: Naik taraf kepada Pengekodan 'utf8mb4'

Untuk menyelesaikan isu ini, anda perlu bertukar kepada pengekodan utf8mb4, yang menyokong aksara tambahan. Pengekodan ini memerlukan empat bait untuk menyimpan aksara, manakala utf8 hanya boleh menyimpan sehingga tiga bait.

Langkah untuk Melaksanakan Pengekodan 'utf8mb4':

  1. Pastikan bahawa versi MySQL anda ialah 5.5 atau lebih tinggi.
  2. Tetapkan pengekodan sambungan kepada utf8mb4 menggunakan pertanyaan: SET NAMES 'utf8mb4'.
  3. Laraskan set aksara pangkalan data dan penyusunan kepada utf8mb4: ALTER DATABASE [database_name] SET CHARACTER = utf8mb4 COLLATE = utf8mb4_general_C.
  4. ubah suai. lajur jadual yang dimaksudkan: ALTER JADUAL [table_name] TUKAR [column_name] [new_column_definition] SET WATAK utf8mb4 COLLATE utf8mb4_general_ci.
Dengan mengikuti langkah ini, anda boleh mengemas kini persekitaran pangkalan data anda untuk menyokong aksara emoji dan mengelakkan pengecualian nilai rentetan yang salah. 🎜>

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Nilai Rentetan Salah\' Semasa 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