我已經瀏覽了整個網絡,只是想方設法使搜索對變音符號不敏感,但我需要相反的方式。進行變音符號敏感搜索
在我的情況下,我需要能夠比較具體的符號與上標和下標點(即ȧ&ạ)和一些其他更常見的紳士(á,ã等),但這些字母可能是任何東西(ṡ, ṛ,ṫ,ḍ,ṅ等)。想要的結果是這樣的:如果我搜索「a」,我只收到「a」,如果我搜索「ȧ」,我只收到「ȧ」,而不是「a」點)。
我讀過,我需要使用utf8_bin並試圖改變我的字段排序規則,表排序規則和數據庫排序規則,但沒有成功。代碼如下:
// "sound" is being passed in by an AJAX call
$sound = $_POST['sound'];
$query = "SELECT * FROM sounds WHERE 'sound' = '$sound'";
$result = mysql_query($query);
// This is then sent back to my page.
我也看過COLLATE,但成功率很低。當我使用utf8_general_ci或utf8_unicode_ci我得到的「一」或「埃」返回兩個「埃」和「a」的例外結果
// Attempting to covert the searched string into the utf8_bin format to match my db collations
$query = "SELECT * FROM sounds WHERE 'sound' = '$sound' COLLATE utf8_bin";
:我可能誤解了探測器的使用。但是,如果我使用utf8_bin,那麼在搜索其中任何一個時都不會得到任何結果。我相信這是因爲在我的數據庫中,當使用utf8_bin時,「 - (PH)」(我的一個條目)被轉換爲 - 「e1b98528504829」。那麼在查詢它們之前,有沒有辦法將我的搜索轉換爲相同的格式?或者只是一個更好的方式來完成這項工作?
謝謝!
您的傳入數據是UTF-8編碼的嗎? –
是的,如果你的意思是頁面的meta「Content-Type」被設置爲UTF8。 – Henry
@Pekka - 由於搜索適用於utf8_general_ci和utf8_unicode_ci,所以這不太可能是編碼問題。 –