Hlo ...Diacritic敏感搜索PHP
我一直在做一个旁遮普语拼写检查器。一切工作都很好,除了旁遮普语的变音符号。与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工作....
你的'示例'不适合我。这两个查询“选择''''COLLATE utf8_bin;#'给出0'和'选择'ਸ'''COLLATE utf8_unicode_ci;#给出0”似乎是正确的。你能举出一个实际的例子和你看到的结果吗? – Danack
从'mysql_'开始的PHP函数从PHP 5.5.0开始已被弃用。如果您有能力这样做,请考虑更新您的代码以使用[MySQLi](http://www.php.net/manual/en/book.mysqli.php)或[PDO](http:///www.php.net/manual/en/ref.pdo-mysql.php)扩展。 –