用电话簿应用程序等拉丁语对应替换非拉丁字符

时间:2012-10-18 07:36:09

标签: iphone ios unicode casting char

我有一个电话簿应用程序,我通过比较条目的第一个字母为节标题生成标题。

索引是预定义的,所以我希望从A-Z和数字#。

分配字母

问题是有很多字母带有重音符号,包括许多语言中的ü,İ,ç等。在我的方法中,由于这些字符不属于A-Z范围,因此将它们分配给#,这是不希望的。

本机iOS电话簿应用程序分配例如ü到U等等。有没有一种简单的方法可以在不定义一组字符的情况下进行这种转换?

感谢。

1 个答案:

答案 0 :(得分:0)

查看Unicode规范化。您可能需要NFD的一些组合以及提取足够的数据。如果从Unicode查看this file,您会看到类似

的内容
  <00> 00E9; LATIN SMALL LETTER E ACUTE; Ll; 0; L; 0065 0301 ;;;; N ;;; 00C9 ;; 00C9

其中00E9,即'é'被分解为0065 0301。您选择0065(a),然后弃掉0301(')。这个文件可以让你很好地开始。在Objective-C / iOS中可能有相同的功能,但我不知道从哪里开始......