Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hiển thị các ký tự tiếng Nhật từ SQLException.getMessage ()

ラケシュ12345

Đúng không?

Có lẽ điều gì đã xảy ra khi INSERTing

  • Bạn có mã hóa utf8 chính xác cho dữ liệu và
  • ĐẶT TÊN Latin1 - theo mặc định hoặc do nhầm lẫn và
  • Cột (hoặc bảng) văn bản được lưu trữ vào được khai báo bằng CHARACTER SET latin1 , lại có thể theo mặc định.

Bạn có thể xác minh rằng dữ liệu được lưu trữ chính xác bằng cách thực hiện

SELECT col, HEX(col) ...

Nếu bạn tìm nạp chuỗi đó, hex sẽ là E383A9E382B1E382B7E383A5EFBC91EFBC92EFBC93EFBC94EFBC95 . Lưu ý rằng có các nhóm gồm 6 hex, bắt đầu từ E383 trong trường hợp của Katakana hoặc EFBC cho "các chữ số chiều rộng đầy đủ".

Giả sử bảng vẫn cho biết latin1, không có dữ liệu nào bị mất và ALTER 2 bước sẽ sửa chữa nó. Tóm lại:

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

trong đó độ dài đủ lớn và "..." khác có bất kỳ thứ gì khác (KHÔNG ĐỦ, v.v.) đã có trên cột.

(Tôi không thể đưa ra câu trả lời rõ ràng và đầy đủ cho câu hỏi này cho đến gần đây.)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sqlalchemy trả về hàng cũ?

  2. Cách tạo tập lệnh từ sơ đồ trong MySQL Workbench

  3. Truy vấn liên hiệp Mysql các hàng trùng lặp

  4. Thuộc tính không xác định:Illuminate \ Database \ Eloquent \ Collection ::Laravel 5.2

  5. Cách tạo hồ sơ người dùng với PHP và MySQL