Php 变音敏感搜索
Hlo 我一直在做旁遮普语的拼写检查。除了旁遮普语的变音符号外,一切都很顺利。与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'"); 如
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