2

我最近为 iphone 开发了一本书,并在这个应用程序中实现了搜索功能。但在真正的 iphone 上测试该应用程序后,我想知道它无法找到所有搜索词。(在我的 Mac 上使用波斯语键盘)

例如,它找不到包含“ی”字符的单词,因为搜索词包含从 iphone 阿拉伯语键盘插入的“ي”字符!

我的文字很多,我找不到所有这些相似的字符!

有什么方法可以将我的波斯语文本转换为阿拉伯语文本?

4

2 回答 2

1

您可能需要规范化文本或使用对各种阿拉伯字母形式(首字母、中字母、尾韵、孤立字母)不敏感或对变音符号不敏感的搜索例程。

特别是 'ي' 是 U+064A 'ARABIC LETTER YEH' 而 'ی' 是 U+FBFC 'ARABIC LETTER FARSI YEH ISOLATED FORM'。

您可能会查看方法 localizedCaseInsensitiveCompare:或各种搜索选项,例如 to NSDiacriticInsensitiveSearch

这是一篇讨论这个问题的博客文章,虽然它实际上并没有说明如何解决这个问题:http ://www.siao2.com/2006/02/14/531572.aspx

于 2012-06-29T17:29:09.590 回答
0

我用这种方法解决了这个问题:

- (NSString *)correctSearchTermCharcters:(NSString *)searchTerm
{
    return [searchTerm stringByReplacingOccurrencesOfString:@"ي" withString:@"ی"];
}

如果需要,您可以替换更多字符。

于 2013-01-26T18:37:29.203 回答