如何搜索数据库中的特殊字符?
问题描述:
我有一个搜索,游客可以搜索一篇文章的标题。直到他们尝试搜索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字符”吗? –