MySQL 對特殊字符的處理:悖論解釋
在MySQL 中,執行涉及特殊字符如'Å'、'Ä'的查詢,和「Ö」經常引發有關結果一致性的問題。例如,使用「Harligt」和「Härligt」進行查詢會產生相同的結果,這讓使用者感到困惑。
這種現象歸因於 MySQL 的預設排序規則設置,特別是“utf8_general_ci”和“utf8_unicode_ci”。這些排序規則透過將某些 unicode 字元(包括斯堪的納維亞字母)等同於其英語等效字元(例如“ä = A”)來規範化它們。此規範化簡化了比較操作和搜索,但在某些情況下可能會不方便。
要解決此問題,請考慮以下選項:
select * from topics where name='Harligt' COLLATE utf8_bin;
值得注意的是,如果沒有對特殊字元進行規範化,則無法執行 MySQL 中不區分大小寫的 LIKE 操作。不過,相關討論可以在這裡找到:
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3