ios - 如何从 UITextField 中获取非英文字符并将其视为普通字符

标签 ios objective-c unicode uitextfield

我有一个包含非英语单词的数据库(对于那些想知道土耳其字母的人)。我有一个算法可以将输入与数据库进行比较。

所以我的问题是这样的;在我的数据库中,所有字符串都是用土耳其字符编写的。假设我有这个元素要比较 heyyö。当用户输入 heyyo 时,它不会找到它,因为它们被视为不同的单词。

我的第一个想法是放置特殊情况,当发现非英语字符时,考虑是英语还是非英语字母(例如 g 与 ğ 或 i 与 ı),但这意味着很多暴力。

我怎样才能优雅地做到这一点。

哦,如果没有暗示的话,用户会从文本字段输入此输入。

最佳答案

删除变音符号称为“折叠”。您可以使用选项NSDIacriticInsensitiveSearch来比较字符串,而不考虑变音符号。

[string compare:otherString options:NSDiacriticInsensitiveSearch] == NSOrderedSame

您可以类似地使用stringByFoldingWithOptions:locale:生成折叠字符串。

请注意,这只会删除变音符号。角色可以通过多种方式“看起来”相同,但实际上并不相同。土耳其语对此有些臭名昭著,因为“I”的小写版本是“ı”(拉丁文小点 I),而不是“i”。如果您特别处理土耳其语,您可能必须考虑到这一点。

关于ios - 如何从 UITextField 中获取非英文字符并将其视为普通字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23641995/

相关文章:

HTML 实体与。使用的 Unicode 代码点

iOS - 如何在滚动 UITableView 时减少 UINavigationBar titleView 的 alpha?

ios - NSManagedObject 子类的类别在 Swift 中是否等效?

iphone - 如何更改核心动画实例的帧速率?

ios - UICollectionView 显示存储在文档目录中的图像

ios - NSCoding 和 NSData 是什么关系?

ios - 在 Parse 上存储信息

ios - 为什么 TabBar 在 segue 之后隐藏?

python - str 到 Python3.3 中的字节

Emoji 的 Python unicode 字符转换