2014-03-29 46 views
0

我的數據庫中有特殊字符的名字,例如SigurRós在mysql搜索中處理特殊字符SigurRós

問題是,如果您搜索帶有常規字符的名稱,例如「西古爾羅斯」,沒有結果將被返回。

處理這個問題的最佳方法是什麼?有沒有我可以使用的工具,或者我必須用PHP手動查找和替換這些工具?

+0

原來,數據庫使用的是html字符 - 例如, 「Sigur Ró s」 – fxfuture

回答

1

在數據庫中,如果將包含此數據的列的排序規則設置爲utf8_unicode_ci,那麼排序和比較將忽略重音符。

+0

謝謝,但不起作用。我檢查了數據庫並將其存儲爲「Sigur Ró s」 – fxfuture

+1

數據庫中的HTML實體將嚴重限制您的選擇。我建議你編寫一個腳本,使用PHP的html_entity_decode()函數將相關字段轉換爲UTF-8。然後確保更新表的任何代碼也將該函數調用以在將新數據插入表之前清理新數據。 一旦你這樣做了,那麼整理設置應該工作。 –

+0

謝謝託德,作品非常漂亮 – fxfuture