MySQL 多版本存在中文排序/查找錯誤,導致無法正確處理中文資料。根因:MySQL 編譯預設使用 ISO-8859 字符集,查詢時大小寫不敏感比較導致中文編碼字節被錯誤轉換。
-- 原結構
name CHAR(10)
-- 修改為
name CHAR(10) BINARY
效果:該欄位改為二進制比較,按字節值排序/查找,繞過字符集轉換邏輯。
./configure --with-charset=gbk ...
從原始碼編譯 MySQL 時加入此參數,使服務器原生支援 GBK 中文排序規則。
utf8mb4 + utf8mb4_unicode_ci,原生支援正確中文排序