MySQL muốn chuyển đổi chuỗi khi thực hiện INSERT và SELECT . Việc chuyển đổi là giữa những gì bạn khai báo với khách hàng có và những gì cột được khai báo là đang lưu trữ.
Cách duy nhất để tránh điều đó là sử dụng VARBINARY và BLOB thay vì VARCHAR và TEXT .
Việc sử dụng COLLATION utf8mb4_bin không tránh chuyển đổi thành / từ CHARACTER SET utf8mb4; nó chỉ nói rằng WHERE và ORDER BY nên so sánh các bit thay vì xử lý dấu và gấp chữ hoa.
Hãy nhớ rằng CHARACTER SET utf8mb4 là một cách để mã hóa văn bản; COLLATION utf8mb4_* là các quy tắc để so sánh các văn bản trong bảng mã đó. _bin là đơn giản.
UNIQUE liên quan đến việc so sánh để bình đẳng, do đó COLLATION . Trong hầu hết các đối chiếu utf8mb4, 3 (không có dấu cách) sẽ so sánh bằng nhau. utf8mb4_bin sẽ coi cả 3 là khác nhau. utf8mb4_hungarian_ci xử lý một =Một> öne.
Các khoảng trống ở cuối được kiểm soát bởi kiểu dữ liệu của cột (VARCHAR hoặc khác). Phiên bản mới nhất thậm chí còn có một cài đặt liên quan đến việc có xem xét dấu cách ở cuối hay không.