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)擴展。 –