我已经浏览了整个网络,只是想方设法使搜索对变音符号不敏感,但我需要相反的方式。进行变音符号敏感搜索
在我的情况下,我需要能够比较具体的符号与上标和下标点(即ȧ&ạ)和一些其他更常见的绅士(á,ã等),但这些字母可能是任何东西(ṡ, ṛ,ṫ,ḍ,ṅ等)。想要的结果是这样的:如果我搜索“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,所以这不太可能是编码问题。 –