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

Chuyển đổi bảng MySQL với dữ liệu được mã hóa không chính xác thành UTF-8

Phương pháp này dưới đây trông thực sự hứa hẹn và tốt hơn nữa, đẹp ở sự đơn giản của nó. Ý tưởng là bạn đặt toàn bộ cơ sở dữ liệu của mình dưới dạng latin1 và sau đó nhập nó được mã hóa lại thành utf-8.

Xuất:

Nhập:

Tôi không nhận được tín nhiệm nào cho giải pháp này, nó hoàn toàn đến từ Blog của Gareth Price . Nó đã có hiệu quả đối với tất cả những người đã để lại nhận xét cho anh ấy cho đến nay: "Ồ, bạn vừa cứu mạng tôi. Tôi đã không dành 2 giờ cho việc này mà là 2 ngày" thu hút sự chú ý của tôi.

Cập nhật # 1: Có vẻ như Gareth wasn không phải là người đầu tiên để khám phá điều này.

Cập nhật # 2: Tôi vừa thử điều này và nó hoạt động rất tốt cho cơ sở dữ liệu UTF8 được lưu trữ dưới dạng latin1 của tôi. Chỉ cần đảm bảo rằng bạn chuyển bộ ký tự mặc định trên cơ sở dữ liệu của mình thành utf8 before nhập, nếu không, bạn sẽ kết thúc với các dấu chấm hỏi đơn giản nơi chứa các ký tự đặc biệt. Tất nhiên, điều này có thể có nhiều phân nhánh khác, vì vậy hãy kiểm tra như địa ngục trước.

Và nếu bạn có bất kỳ bảng nào không được đặt thành mặc định của giản đồ:

(cùng ý tưởng nếu bạn có bất kỳ cài đặt bộ ký tự dành riêng cho cột nào, bạn sẽ phải thực hiện ALTER TABLE [table] THAY ĐỔI CỘT [cài đặt] mà không chỉ định CHARACTER SET để nó quay trở lại bảng mặc định)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa các bản sao khỏi một bảng lớn

  2. Sử dụng mysql_real_escape_string để ngăn SQL Injection ở đâu?

  3. Chọn nhiều bảng khi một bảng trống trong MySQL

  4. Sự khác biệt giữa MyISAM và InnoDB là gì?

  5. Mysql - Làm cách nào để thực hiện tìm kiếm phân biệt chữ hoa chữ thường?