使用 NSPredicate 的 Realm 数据库查询的变音符号不敏感结果

Gie*_*icz 6 diacritics foundation nspredicate ios swift

我正在我的应用程序中实现一个搜索字段,用户可以在其中键入产品名称来过滤视图中显示的项目。

\n\n

我使用 NSPredicate 对 Realm 数据库进行了查询,如下所示:

\n\n
let productResults = try ProductDAO.fetchObjects(predicate: NSPredicate(format: "name CONTAINS[cd]%@", pattern))\n
Run Code Online (Sandbox Code Playgroud)\n\n

我使用[cd]修饰符,因此结果应该不区分大小写和变音符号。

\n\n

看起来它工作正常,所以当我输入例如:

\n\n
\n

布拉佐维

\n
\n\n

结果是:

\n\n
\n

库基尔 br\xc4\x85zowy

\n
\n\n

但是当我输入带有L字母的单词时,我找不到任何包含\xc5\x81字母的产品。\n从输入中:

\n\n
\n

“马斯洛”

\n
\n\n

我应该能够找到类似的产品:

\n\n
\n

“马斯\xc5\x82o”

\n
\n\n

但没有结果,看来是波兰语\xc5\x81字母的问题。\n有人知道是否有其他解决方案可以获得正确的结果,或者我是否以错误的方式使用它?

\n