【问题标题】:Recognize special characters in NSString识别 NSString 中的特殊字符
【发布时间】:2014-04-25 07:34:11
【问题描述】:

我有一个带有文本的 UITextView:

????????????????????????❡

它的图像: (这是我的文字截图,我担心有人看不到我的特殊字符

如果我是最终用户,我只会看到 textView 上只有 7 个字符

但是[textView.text length]=13

我想把这个文本拆分成这样的数组:

数组 = @[ , , ,... ]

但我无法检测到 在哪里, 在哪里, 在哪里... :(

你能帮帮我吗!

【问题讨论】:

  • 您可以记录您添加到 textview 中的图像长度,看看为什么[textView.text length] = 13。示例代码:UIImage *img = [UIImage imageNamed:@"sample.png"]; NSData *imgData = UIImageJPEGRepresentation(img, 0); NSLog(@"Size of Image(bytes):%d",[imgData length]);
  • 谢谢李!但我想你没明白我的意思。我已经编辑了我的帖子。请再读一遍:)

标签: objective-c nsstring uitextview


【解决方案1】:

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

例如,“?” = U+1F44C(OK HAND SIGN) 在NSString中存储为U+D83D、U+DC4C这两个字符。

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

enumerateSubstringsInRange:options:usingBlock:

带有NSStringEnumerationByComposedCharacterSequences 选项的NSString 方法。

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

【讨论】:

  • 非常非常非常非常非常非常非常非常非常感谢?????!!这就是我要找的
猜你喜欢
  • 2012-10-30
  • 2011-11-26
  • 2018-09-25
  • 1970-01-01
  • 2021-03-31
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 2012-05-14
相关资源
最近更新 更多