Tôi đã gặp phải vấn đề tương tự khi sử dụng mô-đun Python MySQLdb. Vì MySQL sẽ cho phép bạn lưu trữ bất kỳ dữ liệu nhị phân nào bạn muốn trong trường văn bản bất kể bộ ký tự là gì, tôi đã tìm thấy giải pháp của mình ở đây:
Sử dụng UTF8 với Python MySQLdb
Chỉnh sửa:Trích dẫn từ URL trên để đáp ứng yêu cầu trong nhận xét đầu tiên ...
"UnicodeEncodeError:codec 'latin-1' không thể mã hóa ký tự ..."
Điều này là do MySQLdb thường cố gắng mã hóa everythin thành latin-1. Điều này có thể được khắc phục bằng cách thực hiện các lệnh sau ngay sau khi bạn thiết lập kết nối:
db.set_character_set('utf8')
dbc.execute('SET NAMES utf8;')
dbc.execute('SET CHARACTER SET utf8;')
dbc.execute('SET character_set_connection=utf8;')
"db" là kết quả của
MySQLdb.connect()
và "dbc" là kết quả củadb.cursor()
.