Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Encoding JSP saat memasukkan teks non-Inggris di database MySQL

Ini hanya akan terjadi ketika kedua belah pihak sangat menyadari perbedaan pengkodean karakter di masing-masing pihak. Setiap karakter yang tidak tercakup oleh pengkodean karakter yang digunakan di sisi lain akan diganti dengan tanda tanya ? . Jika tidak, Anda akan melihat Mojibake .

Dalam kasus khusus ini, sisi tersebut adalah sisi Java dan sisi database, dengan driver JDBC sebagai mediator. Untuk memperbaikinya, Anda perlu memberi tahu driver JDBC tentang pengkodean karakter tersebut. Anda dapat melakukannya dengan menyetel useUnicode=true&characterEncoding=UTF-8 parameter di URL koneksi JDBC.

jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8

Kemudian, tergantung pada bagaimana Anda mengirim parameter dari klien ke server, Anda mungkin juga perlu memperbaiki pengkodean permintaan. Mengingat fakta bahwa Anda melihat Mojibake saat Anda menghapus request.setCharacterEncoding("UTF-8") , Anda menggunakan POST. Jadi bagian itu baik-baik saja.

Dalam hal ini, jika Anda menggunakan GET untuk mengirim parameter, Anda perlu mengonfigurasi penyandian URI di sisi server. Tidak jelas server apa yang Anda gunakan, tetapi dalam kasus misalnya Tomcat, ini masalah pengeditan <Connector> entri di /conf/server.xml sebagai berikut:

<Connector ... URIEncoding="UTF-8">

Lihat juga:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Bagaimana cara menggunakan pembatas di pemicu?

  2. Kapan Class.forName diperlukan saat menghubungkan ke database melalui JDBC di aplikasi web?

  3. Terlalu banyak peningkatan otomatis dengan ON DUPLICATE KEY UPDATE

  4. Menghapus baris dengan MySQL LEFT JOIN

  5. Menggunakan mysqldump untuk memformat satu sisipan per baris?