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

Mengapa Huruf Arab Tidak Dimasukkan Dalam Basis Data?

Ini dikenal sebagai Mojibake . Ini bukan masalah penyandian DB, tetapi masalah penyandian HTTP. Menyetel pengkodean karakter permintaan POST seperti yang Anda lakukan memang merupakan solusi yang tepat.

Tanda tanya muncul ketika keduanya sisi koneksi sadar pengkodean mereka sendiri. Karakter terkirim/diambil yang tidak tercakup oleh pengkodean satu sisi akan diganti dengan tanda tanya. Karakter Arab tidak muncul di ISO-8859-1 dan karenanya diganti dengan tanda tanya. Itulah bedanya dengan Mojibake dimana karakter dikirim tanpa memeriksa apakah pengkodean yang digunakan oleh pihak lain benar-benar mendukung karakter tersebut. Anda akan mendapatkan karakter yang salah dikodekan yang menampilkan dirinya sebagai urutan karakter yang tidak dapat dipahami.

Dalam kasus khusus ini, driver JDBC dengan sendirinya menyadari bahwa ia menggunakan ISO-8859-1 secara default untuk mengirimkan karakter ke DB, sedangkan karakter yang diambil berada di UTF-8 (driver MySQL JDBC tidak melihat DB pengkodean tabel, meskipun sudah disetel dengan benar ke UTF-8 dalam kasus Anda). Anda perlu memberi tahu driver JDBC secara eksplisit untuk menggunakan UTF-8 untuk memecahkan kode karakter sebelum mengirimkan data ke DB. Ini harus dilakukan sebagai properti koneksi JDBC yang didefinisikan sebagai parameter string kueri di URL JDBC seperti:

jdbc:mysql://localhost:3306/db_name?useUnicode=yes&characterEncoding=UTF-8

Jika Anda menggunakan sumber data yang dikelola penampung, cukup tentukan properti tersebut secara terpisah dengan cara yang sama seperti yang Anda lakukan untuk nama pengguna dan sandi

useUnicode=yes
characterEncoding=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. Cara Menginstal dan Mengkonfigurasi phpMyAdmin di CentOS 6

  2. MySQL:ERROR 1215 (HY000):Tidak dapat menambahkan batasan kunci asing

  3. Arti n:m dan 1:n dalam desain database

  4. Menghapus semua record tabel yang tidak direferensikan dari tabel lain

  5. Nginx - Mengunduh PHP alih-alih mengeksekusi