Chà, tôi đã tìm thấy rằng SET NAMES
không hẳn là tuyệt vời. Đạt được đỉnh cao tại tài liệu
...
Những gì tôi thường làm là thực hiện 4 truy vấn:
SET CHARACTER SET 'UTF8';
SET character_set_database = 'UTF8';
SET character_set_connection = 'UTF8';
SET character_set_server = 'UTF8';
Hãy thử xem điều đó có phù hợp với bạn không ...
Ồ, và hãy nhớ rằng tất cả các ký tự UTF-8 <=127 cũng là các ký tự ISO-8859-1 hợp lệ. Vì vậy, nếu bạn chỉ có các ký tự <=127 trong luồng, hãy mb_detect_encoding
sẽ rơi vào bộ ký tự phổ biến hơn (theo mặc định là "UTF-8") ...