Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Membetulkan Isu Pengekodan Data UTF-8 dengan Penyambung JDBC MySQL?

Bagaimana untuk Membetulkan Isu Pengekodan Data UTF-8 dengan Penyambung JDBC MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-10-28 07:48:02150semak imbas

How to Fix UTF-8 Data Encoding Issues with the MySQL JDBC Connector?

Menyelesaikan Masalah Pengendalian Data UTF-8 dalam MySQL melalui JDBC Connector

Masalah: Menghadapi isu pengekodan data apabila membaca dan menulis data UTF-8 dalam pangkalan data MySQL menggunakan Java dan JDBC.

Latar Belakang:

Senario yang melibatkan dua pangkalan data MySQL berkod UTF-8, data penyegerakan Java Timer Service antara mereka, dan aplikasi web mengubah suai data dalam pangkalan data kedua diterangkan. Isu timbul apabila aksara tidak dipaparkan dengan betul disebabkan pengekodan yang salah.

Pemerhatian:

  • Watak seperti 'ó' muncul apabila membaca data daripada pangkalan data pertama.
  • Tetapan character_set_server dalam MySQL ditetapkan kepada 'latin1'.
  • Percubaan untuk menyahkod data menggunakan "New String(data.getBytes("UTF-8"));" selesaikan isu paparan tetapi memberi kesan kepada kemas kini data.

Penyelesaian:

Untuk menyelesaikan isu, pastikan pengekodan UTF-8 yang betul sepanjang proses:

  1. Rentetan Sambungan JDBC: Gunakan rentetan sambungan berikut:
DriverManager.getConnection(
           "jdbc:mysql://" + host + "/" + dbName 
           + "?useUnicode=true&characterEncoding=UTF-8", user, pass);
  • Ini mengkonfigurasi sambungan JDBC untuk menggunakan Unicode dan menentukan pengekodan aksara sebagai UTF-8.
  1. Sahkan Tetapan MySQL: Sahkan bahawa tetapan MySQL berikut dikonfigurasikan dengan betul:
character_set_client -> utf8
character_set_connection -> utf8
character_set_database -> utf8
character_set_results -> utf8
useUnicode -> true
  • Tetapan ini memastikan pengekodan data yang betul dalam klien, sambungan, pangkalan data dan hasil.
  1. Pertimbangan Set Aksara: Tetapan character_set_server dalam MySQL biasanya tidak diubah suai dan mungkin berbeza bergantung pada konfigurasi pangkalan data. Adalah penting untuk menentukan set aksara yang sesuai untuk senario khusus anda.

Mengatasi Enigma:

Isunya terutamanya dengan membaca data daripada pangkalan data pertama ke dalam kod Java. Penyambung JDBC tidak dikonfigurasikan dengan pengekodan UTF-8 yang betul secara lalai. Dengan mengkonfigurasi rentetan sambungan dan tetapan MySQL yang diterangkan di atas, aksara harus dipaparkan dengan betul.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Pengekodan Data UTF-8 dengan Penyambung JDBC MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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