识别NSString中的特殊字符

时间:2014-03-19 07:47:20

标签: objective-c nsstring uitextview

我有一个带文字的UITextView:

它的形象: enter image description here这是我的文字的屏幕截图,我担心有人看不到我的特殊字符

如果我是最终用户,我发现textView上只有 7个字符

[textView.text length] = 13

我想将此文本拆分为如下数组:

array = @ [ enter image description hereenter image description hereenter image description here,... ]

但我无法检测的位置,的位置,的位置...... :(

你能帮助我吗?

1 个答案:

答案 0 :(得分:4)

"basic multilingual plane"之外的字符 - 换句话说,是其中的字符 Unicode值大于U+FFFF - 作为两个 UTF-16字符存储在NSString中, 一个所谓的代理对

例如,"" = U + 1F44C(OK HAND SIGN) 存储在NSString中作为两个字符U + D83D,U + DC4C。

要使用代理项对正确分割字符串,请使用

enumerateSubstringsInRange:options:usingBlock:
使用NSString选项的NSStringEnumerationByComposedCharacterSequences

方法。

另一个有用的方法是rangeOfComposedCharacterSequenceAtIndex:来确定 某个位置的组合字符序列的范围。