Php 变音敏感搜索

Php 变音敏感搜索,php,mysql,utf-8,diacritics,Php,Mysql,Utf 8,Diacritics,Hlo 我一直在做旁遮普语的拼写检查。除了旁遮普语的变音符号外,一切都很顺利。与e和e一样,旁遮普语也有ਸ和ਸ਼。但问题是,当我在数据库中搜索时,它会考虑带有ਸ਼和ਸ相同。数据库以utf-8格式存储单词。我正在为数据库和表使用排序规则utf8\u unicode\u ci mysql_query("SET charset utf8"); $exists = mysql_query("SELECT COUNT(word) FROM unicode WHERE word = '$str'"); 如

Hlo

我一直在做旁遮普语的拼写检查。除了旁遮普语的变音符号外,一切都很顺利。与
e
e
一样,旁遮普语也有
ਸ਼。但问题是,当我在数据库中搜索时,它会考虑带有
ਸ਼
相同。数据库以
utf-8
格式存储单词。我正在为数据库和表使用排序规则
utf8\u unicode\u ci

mysql_query("SET charset utf8");
$exists = mysql_query("SELECT COUNT(word) FROM unicode WHERE word = '$str'");
如果计数为0,则表示单词错误
$str
就是这个词。当我尝试搜索时,它会用
ਸ਼正确。带
ਸ਼是正确的

我试图用
COLLATE utf8\u bin
将排序规则更改为
utf8\u bin
,但它说两个单词都错了
ਸ਼。我甚至尝试了
utf8\u general\u ci
并更改了表和数据库的排序规则

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

我的主要问题是变音敏感搜索,它也不能与
utf8\u bin
一起工作

Plzz帮助..提前发送Thxx

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

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

你的“示例”对我不起作用。两个查询都“选择”ਸ' 就像ਸ਼' 对比utf8_bin;#给出0”和“选择”ਸ' 就像ਸ਼' 校对utf8_unicode_ci;#给出0“似乎是正确的。你能给出一个实际的例子和你看到的结果吗?从PHP5.5.0开始,以
mysql\uuz
开头的PHP函数已经被弃用了。如果你是在这样做的位置,请考虑更新你的代码来使用或扩展。嘿…我得到KNO的问题…我注意到这个…当diaCurin是在词的末尾,它工作得很好…但是当它是在D开始字或在中间,它不工作…thx