我最近爲iPhone開發了一本書,並在此應用程序中實現了搜索功能。 但在真正的iPhone上測試應用程序後,我想知道它找不到所有的搜索條款。 (使用我的mac上的波斯語鍵盤)不能搜索iPhone上的阿拉伯語鍵盤的波斯語文本
例如,它不能找到包含「ی」字符的單詞,因爲搜索字詞包含從iPhone阿拉伯語鍵盤插入的「ي」字符!
我的文章很多,我無法找到所有這些類似的字符!
有什麼辦法將我的波斯文字轉換爲阿拉伯文字嗎?
我最近爲iPhone開發了一本書,並在此應用程序中實現了搜索功能。 但在真正的iPhone上測試應用程序後,我想知道它找不到所有的搜索條款。 (使用我的mac上的波斯語鍵盤)不能搜索iPhone上的阿拉伯語鍵盤的波斯語文本
例如,它不能找到包含「ی」字符的單詞,因爲搜索字詞包含從iPhone阿拉伯語鍵盤插入的「ي」字符!
我的文章很多,我無法找到所有這些類似的字符!
有什麼辦法將我的波斯文字轉換爲阿拉伯文字嗎?
我解決這個問題,用這種方法:
- (NSString *)correctSearchTermCharcters:(NSString *)searchTerm
{
return [searchTerm stringByReplacingOccurrencesOfString:@"ي" withString:@"ی"];
}
,如果你需要,你可以替換更多的字符。
您可能需要規範化文本或使用對各種阿拉伯字母形式(初始,中間,最終,孤立)不敏感的搜索例程,或對變音符號不敏感。
特別是'í'是U + 064A'阿拉伯字母YEH'而'ی'是U + FBFC'阿拉伯字母FARSI YEH隔離形式'。
您可以查看方法localizedCaseInsensitiveCompare:
或各種搜索選項,例如NSDiacriticInsensitiveSearch
。
這裏有一個博客帖子討論這個問題,但它實際上並沒有說如何解決這個問題:http://www.siao2.com/2006/02/14/531572.aspx
感謝您的回答! Im使用核心數據並過濾結果使用此謂詞Im:NSPredicate * predicate = [NSPredicate predicateWithFormat:@「name contains [cd]%@」,searchTerm];和Im使用字符串比較選項:NSCaseInsensitivePredicateOption「c」和NSDiacriticInsensitivePredicateOption「d」但問題沒有解決! –