Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Tidak Betul' Apabila Memasukkan Teks Unikod ke MySQL menggunakan JDBC?

Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Tidak Betul' Apabila Memasukkan Teks Unikod ke MySQL menggunakan JDBC?

DDD
Lepaskan: 2024-12-22 08:46:09
asal
833 orang telah melayarinya

How to Fix

Ralat Nilai Rentetan Tidak Betul dengan Sisipan UTF-8 dalam MySQL melalui JDBC

Apabila cuba memasukkan teks Unicode ke dalam pangkalan data MySQL menggunakan JDBC, pengguna mungkin menghadapi ralat "Nilai rentetan salah", khususnya apabila teks mengandungi jujukan bait xF0. Isu ini sering muncul dengan set data yang besar dan boleh dikaitkan dengan pengehadan lalai MySQL.

Punca Ralat:

Pengekodan utf8 MySQL hanya menyokong aksara Unicode yang boleh diwakili dalam tiga bait. Walau bagaimanapun, aksara Unicode tertentu, seperti xF0x90x8Dx83, memerlukan empat bait dalam UTF-8. Percubaan untuk memasukkan aksara sedemikian ke dalam lajur berkod utf8 mencetuskan ralat.

Penyelesaian:

Untuk menyelesaikan isu, dua pendekatan boleh diambil:

  1. Tukar Lajur Pengekodan:

    Kemas kini pengekodan lajur kepada utf8mb4, yang menyokong aksara Unicode empat bait. Ini boleh dilakukan menggunakan pernyataan SQL berikut:

    ALTER TABLE <table_name> MODIFY COLUMN <column_name> TEXT COLLATE utf8mb4;
    Salin selepas log masuk
  2. Konfigurasikan Sifat Pelayan:

    Jika menggunakan MySQL versi 5.5 atau lebih baru, tetapkan sifat character_set_server dalam fail konfigurasi MySQL kepada utf8mb4 untuk membolehkan pelayan mengendalikan Unicode empat bait aksara.

    character_set_server = utf8mb4
    Salin selepas log masuk

Konfigurasi Penyambung/J:

Penyambung/J mengesan secara automatik tetapan UTF-8 apabila parameter Pengekodan aksara diabaikan daripada rentetan sambungan. Oleh itu, untuk set aksara UTF-8 empat bait, biarkan pengekodan aksara dan tetapkan pelayan_set_aksara seperti yang diterangkan di atas.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat 'Nilai Rentetan Tidak Betul' Apabila Memasukkan Teks Unikod ke MySQL menggunakan 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan