我一直在我的数据库中使用UTF-8字符,并在将字符放入数据库之前使用php inconv函数将字符从utf-8转换为ascii。
通过这种方式,我想,我可以在查询数据库之前将查询转换为ASCII。然而,现在我看到了一些结果,这让我相信mysql会为我做这个翻译。
有没有人知道这是否正确,我可以在php中跳过整个inconv (这并不是很有效)。
例如,搜索'lësci‘会返回'Lesci’,这让我相信到ASCII的翻译是在某个时刻发生的。
该表使用utf_8_unicode_ci编码。该字段是具有全文索引的varchar(255)。查询相当简单:"SELECT * FROM users WHERE name= 'lësci‘“返回’lësci‘和'Lesci’。
发布于 2009-08-22 00:59:50
我假设您对索引使用utf8_unicode_ci排序规则。排序规则起到了作用。它并没有真正地将所有内容转换为ASCII,但它处理了重音字母到原始字母之间的映射。
不确定这个特定的映射,utf8_generic_ci可能不会平等对待它们,因为它的映射要简单得多,因此它更快。
https://stackoverflow.com/questions/1314601
复制相似问题