我有一个带文字的UITextView:
❡
它的形象: (这是我的文字的屏幕截图,我担心有人看不到我的特殊字符)
如果我是最终用户,我发现textView上只有 7个字符。
但[textView.text length]
= 13
我想将此文本拆分为如下数组:
array = @ [ , , ,... ]
但我无法检测的位置,的位置,的位置...... :(
你能帮助我吗?
答案 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:
来确定
某个位置的组合字符序列的范围。