我有一個Mysql數據庫(在utf8_general_ci中)並且必須查詢包含特殊字符的列。問題是:包含特殊字符的查詢不會檢索任何結果 - 但包含這些字符的常規版本的查詢會執行。UTF8數據庫查詢和特殊字符
舉例來說,如果我要查詢單詞「ETE」:
- SELECT ... WHERE LIKE%ETE%列將無法正常工作。
- SELECT ... WHERE column LIKE%ete%將工作!
這個問題必須是由於我的編碼(兩個查詢都直接在phpMyAdmin中完成)。
我使用PDO,並按照這裏的指令(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through)和連接到數據庫時,執行exec(「SET CHARACTER SET utf8「)和exec(」SET collation_connection ='utf8_general_ci'「)。令我困擾的是,除了這個搜索查詢之外,該網站對於顯示和數據庫似乎都可以很好地與utf8一起工作。
我認爲我可以對包含特殊字符的字符串進行transliterate_to_ascii操作。然而,我擔心這個選項並不理想,特別是對於非歐洲語言。 非常感謝您的幫助!
後立即運行mysql的
SET NAMES utf8;
顯示你正在使用 –@Pekka用於查詢的代碼:SELECT * FROM翻譯WHERE translations.content例如:SEARCH_TERMS + $查詢 - > bindParam(': search_terms',$ search_terms) – Raphael
顯示您用於查詢的完整代碼 –