Tôi không nghĩ rằng đây phải là một lỗi. Tôi có thể tưởng tượng rằng bất cứ khi nào máy khách nói chuyện với máy chủ và nói rằng lệnh sau ở UTF-8 và máy chủ cần nó bằng tiếng Latinh-1, thì truy vấn có thể được mã hóa lại trước khi phân tích cú pháp và thực thi. Vì vậy, đây là một vấn đề mã hóa cho việc vận chuyển dữ liệu. Vì toàn bộ truy vấn trước khi phân tích cú pháp sẽ bị ảnh hưởng bởi quá trình mã hóa lại này, dữ liệu nhị phân cho cột BLOB cũng sẽ bị thay đổi.
Hoặc trên đường trở lại:Dữ liệu Latin1 từ cửa hàng sẽ được chuyển đổi thành UTF-8 vì máy khách đã nói với máy chủ rằng nó thích UTF-8 hơn cho việc vận chuyển.
Giá trị nhận dạng cho chính PDO mà bạn đặt tên trông giống như một cái gì đó hoàn toàn khác:
Tôi không phải là chuyên gia về MySQL nhưng tôi sẽ giải thích nó theo cách này. Máy khách và máy chủ cần thương lượng bộ ký tự nào họ đang sử dụng và tôi cho rằng họ làm điều này là có lý do.