我有一個搜索,遊客可以搜索一篇文章的標題。直到他們嘗試搜索utf-8字符時它才工作得很好。如何搜索數據庫中的特殊字符?
問題出在這裏:您搜索「új」,您會從包含「új」但不包含「Új」的標題獲得結果。在數據庫中,我將uft-8字符存儲爲html實體,因此「új」看起來像:「ú j」和「Új」看起來像「Ú」。
我有一個函數,它將這些utf8字符轉換爲html實體。 如:
$text = str_replace("Ú","Ú",$text);
$text = str_replace("ú","ú",$text);
我想要做的是,如果有人搜索ú還顯示Ú的結果,而是因爲他們在數據庫中不同的字符(Ú和ú),因此, strtolower(或mb_strtolower)不起作用,它只適用於像E和e或U和u這樣的普通字符。
我該怎麼辦?在數據庫中存儲UTF-8字符爲utf-8會更好嗎?
使用正則表達式來查找特殊字符 –
在你的數據庫可以存儲實際的HTML價值,使另一列,致力於搜索 但似乎對我來說,UTF8-unicode編碼提供的是:,我不知道 – Snoozer
我們不應該修復「我有存儲爲html實體的uft-8字符」嗎? –