2012-06-29 57 views
2

我最近爲iPhone開發了一本書,並在此應用程序中實現了搜索功能。 但在真正的iPhone上測試應用程序後,我想知道它找不到所有的搜索條款。 (使用我的mac上的波斯語鍵盤)不能搜索iPhone上的阿拉伯語鍵盤的波斯語文本

例如,它不能找到包含「ی」字符的單詞,因爲搜索字詞包含從iPhone阿拉伯語鍵盤插入的「ي」字符!

我的文章很多,我無法找到所有這些類似的字符!

有什麼辦法將我的波斯文字轉換爲阿拉伯文字嗎?

回答

0

我解決這個問題,用這種方法:

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

,如果你需要,你可以替換更多的字符。

1

您可能需要規範化文本或使用對各種阿拉伯字母形式(初始,中間,最終,孤立)不敏感的搜索例程,或對變音符號不敏感。

特別是'í'是U + 064A'阿拉伯字母YEH'而'ی'是U + FBFC'阿拉伯字母FARSI YEH隔離形式'。

您可以查看方法localizedCaseInsensitiveCompare:或各種搜索選項,例如NSDiacriticInsensitiveSearch

這裏有一個博客帖子討論這個問題,但它實際上並沒有說如何解決這個問題:http://www.siao2.com/2006/02/14/531572.aspx

+0

感謝您的回答! Im使用核心數據並過濾結果使用此謂詞Im:NSPredicate * predicate = [NSPredicate predicateWithFormat:@「name contains [cd]%@」,searchTerm];和Im使用字符串比較選項:NSCaseInsensitivePredicateOption「c」和NSDiacriticInsensitivePredicateOption「d」但問題沒有解決! –

相關問題