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

Menampilkan karakter Jepang dari SQLException.getMessage()

ラケシュ12345

Benar?

Mungkin apa yang terjadi ketika INSERTing adalah

  • Anda memiliki penyandian utf8 yang benar untuk data, dan
  • SET NAMA latin1 -- secara default atau karena kesalahan, dan
  • Kolom (atau tabel) tempat teks disimpan dideklarasikan dengan CHARACTER SET latin1 , sekali lagi mungkin secara default.

Anda dapat memverifikasi bahwa data disimpan dengan benar dengan melakukan

SELECT col, HEX(col) ...

Jika Anda mengambil string tersebut, hex akan menjadi E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95 . Perhatikan bagaimana ada grup 6 hex, mulai E383 dalam kasus Katakana atau EFBC untuk "digit lebar penuh".

Dengan asumsi tabel masih mengatakan latin1, tidak ada data yang hilang, dan 2-langkah ALTER akan memperbaikinya. Singkatnya:

ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;

di mana panjangnya cukup besar dan yang lain "..." memiliki apa pun (NOT NULL, dll) sudah ada di kolom.

(Saya tidak dapat memberikan jawaban yang jelas dan lengkap untuk pertanyaan ini sampai baru-baru ini.)




  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 bergabung dengan 3 tabel trik

  2. Men-debug Pemicu MySQL

  3. Mysql memilih dari dua tabel

  4. Mysql drop user dengan hibah untuk banyak host

  5. Mengakses file gambar