Cổng vào tri thức => Tin học => Topic started by: saos@ngmo on 01/07/20, 22:30 Return to Full Version

Title: Cách convert cơ sở dữ liệu mysql bị mã hoá UTF8 2 lần
Post by: saos@ngmo on 01/07/20, 22:30
Có nhiều bài hướng dẫn để convert lỗi UTF-8 bị mã hoá 2 lần nhưng đa số đều cần phải liệt kê từng cột của table.
Theo cách của mình tìm được trên StackOverflow thì chỉ cần 2 lệnh là đã giải quyết xong vấn đề.
Trước tiên, cần dump cơ sở dữ liệu với charset latin1, dùng lệnh sau ở console:

mysqldump -h DB_HOST -u DB_USER -p --skip-set-charset --default-character-set=latin1 DB_NAME > DB_NAME-dump.sql
Sau đó thực hiện import lại với lệnh sau:

mysql -h DB_HOST -u DB_USER -p --default-character-set=utf8 DB_NAME < DB_NAME-dump.sqlCredit: http://blog.hno3.org/2010/04/22/fixing-double-encoded-utf-8-data-in-mysql/ (http://blog.hno3.org/2010/04/22/fixing-double-encoded-utf-8-data-in-mysql/)