我有一个提供(与数据库)和一个搜索栏。当我的东西在搜索酒吧,我做了一个快速搜索的数据库和结果显示我的类型。

查询这样的:

SELECT * FROM MyTable WHERE name LIKE '%NAME%'

一切工作的现只要我用仅ASCII characters.什么我想要的类型ASCII字符,并符合他们的相关变音符号.例如,如果我输入"艾莉婕",我将指望它的匹配"Alizée".

有没有办法做出的查询语言环境不敏感的?我红色的有关核选择在SQL,但似乎没有使用源码.我也是红色的iPhone,SDK3.0有"本地化的排序规则",但我还是无法找到任何文档中关于这意味着什么...

谢谢你。

有帮助吗?

解决方案

有几个选择,用于解决这样的:

  1. 代替所有饰字在 查询之前执行它,例如

    "Psychédélices"=>"Psychedelices"
    "À contre-柯朗"=>"一contre-柯朗"
    "Tempête"=>"Tempete"
    等等。

    但是,这仅适用于输入这样 你必须没有口音字在 该数据库本身。简单的解决方案,但是 远非完美。

  2. 使用一个第3方图书馆,即伊斯兰法院联盟(下面的链接).不知道这是否是最佳选择的iPhone虽然。

  3. 写一个或多个自定义C功能,这将做比较。越下面的链接。

一些员额在这里计算器,讨论各种选项:
如何排序的文本在sqlite3与指定的区域设置?
情况不敏感的UTF-8串的排序规则对于源码(C/C++)
如何实现的口音/变音符号不敏感的搜索源码?

另外一对夫妇的外部链接:
源码和地UNICODE支持在C/C++
源码情况和重点不敏感的搜索

其他提示

我不确定SQL,但我认为你绝对可以使用 NSDiacriticInsensitivePredicateOption 来比较内存中的NSStrings。

一个例子是一个NSArray,其中包含您正在搜索的字符串。您可以使用 NSDiacriticInsensitivePredicateOption 作为比较选项迭代比较字符串的数组,并显示成功的匹配。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top