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

Sửa các bảng mã

Văn bản của bạn đã được mã hóa thành UTF-8 và sau đó được giải mã lại, do nhầm lẫn, là Mac Roman .

Bạn sẽ không thể sửa lỗi này bên trong cơ sở dữ liệu, vì MySQL không biết mã hóa Mac Roman. Bạn có thể viết một tập lệnh để đi từng hàng của mỗi bảng bị ảnh hưởng và sửa văn bản bằng cách đảo ngược chu kỳ mã hóa / giải mã. Python là một khả năng, có một loạt các mã hóa tốt:

>>> print u'é'.encode('macroman').decode('utf-8')
é
>>> print u'ö'.encode('macroman').decode('utf-8')
ö
>>> print u'í'.encode('macroman').decode('utf-8')
í

Ngoài ra, nếu không có nội dung không phải ASCII nào không bị ảnh hưởng bởi sự cố này, bạn có thể thử sử dụng mysqladmin để xuất một kết xuất SQL, sau đó chuyển đổi tất cả cùng một lúc, bằng cách sử dụng một tập lệnh như trên hoặc, nếu bạn có một trình soạn thảo văn bản (có lẽ là trên Mac) có thể làm điều đó, hãy tải tập lệnh dưới dạng UTF-8 rồi lưu nó dưới dạng Mac Roman. Cuối cùng nhập lại kết xuất bằng mysql < dump.sql .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng một biến người dùng trong mệnh đề MySQL LIKE?

  2. MySQL tách các ký tự không phải số để so sánh

  3. Làm cách nào để tôi có thể lặp lại tập kết quả MySQL nhiều lần bằng cách sử dụng các hàm mysql_ *?

  4. SqlNullValueException khi thực thi một thủ tục được lưu trữ với MySqlCommand

  5. Lỗi với PreparedStatement