Punca aksara bercelaru:
Apabila pengekodan halaman JSP tidak konsisten dengan pengekodan pangkalan data MySQL, kacau watak sering berlaku. Sebagai contoh, halaman JSP menggunakan pengekodan UTF-8, manakala pangkalan data MySQL menggunakan pengekodan GBK.
Set aksara pangkalan data yang salah: Set aksara lalai yang digunakan oleh pangkalan data MySQL ialah set aksara Latin (latin1), bukan set aksara UTF-8 yang menyokong bahasa Cina. Apabila anda memasukkan atau membaca aksara Cina ke dalam pangkalan data MySQL, anda berkemungkinan menghadapi aksara yang bercelaru.
Kaedah pengekodan sambungan pangkalan data yang salah: Apabila JDBC menyambung ke MySQL, anda perlu menetapkan kaedah pengekodan sambungan Jika tetapan tidak betul, ia juga akan menyebabkan masalah kod bercelaru.
Penyelesaian:
Tetapkan kaedah pengekodan halaman: tambah , pastikan kaedah pengekodan halaman JSP adalah konsisten dengan kaedah pengekodan pangkalan data MySQL.
Untuk menetapkan set aksara pangkalan data MySQL kepada UTF-8, anda perlu mengubah suai fail my.cnf MySQL. Tambahkan baris kod berikut di bawah [mysqld]:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
Nota: Pastikan anda mengubah suai item berkaitan set aksara sedia ada MySQL kepada UTF-8 dan bukannya menambah kod di atas secara langsung.
Tetapkan kaedah pengekodan sambungan pangkalan data: Apabila JDBC menyambung ke MySQL, anda perlu menetapkan kaedah pengekodan sambungan untuk memastikan kaedah pengekodan halaman JSP dan pangkalan data MySQL adalah konsisten. Sebagai contoh, anda boleh menetapkannya dengan menambahkan parameter charset=UTF-8 pada URL JDBC
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF- 8
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan kod kacau jsp mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!