变音符敏感搜索PHP

时间:2013-07-25 12:59:57

标签: php mysql utf-8 diacritics

... HLO

我一直在制作旁遮普语的拼写检查。除了旁遮普语言的变音符号外,一切都很好。与eé一样,旁遮普也有变音符号ਸ਼。但问题是,当我在数据库中搜索时,它认为ਸ਼这个词是相同的。数据库以utf-8格式存储。我正在为数据库和表使用排序规则utf8_unicode_ci

mysql_query("SET charset utf8");
$exists = mysql_query("SELECT COUNT(word) FROM unicode WHERE word = '$str'");

如果计数为0,则表示单词错误。 $str就是这个词。当我尝试搜索时,它会同时显示ਸ਼这两个字。 ਸ਼这个词是正确的。

我尝试使用utf8_bin将排序规则更改为COLLATE utf8_bin,但它表示错误ਸ਼。我甚至尝试过utf8_general_ci并更改表和数据库的排序规则。

要么说不正确,要么两者都正确。但其中一个是正确的。

我的主要问题是变音符号敏感搜索,它不适用于utf8_bin ......

Plzz Help..Thxx提前....

1 个答案:

答案 0 :(得分:2)

SELECT COUNT(word) FROM unicode WHERE BINARY word = '$str'

BINARY关键字使mysql进行直接的逐位比较。