我使用drawInRect:将文本绘制到UIView:我从服务器端脚本获取要绘制的文本。在至少一种情况下,字符\ U00a0位于我从服务器接收的字符串中,并且该单个字符正在破坏drawInRect:方法。意思是,它会将所有文本绘制到该角色之前,但不会在该角色之后绘制任何文本。有谁知道这个角色是什么?我做了一些谷歌搜索,并了解到该字符是unicode中的非破坏空间,尽管当我对字符串进行NSLog时,该字符显示为中间点。下面是我从服务器返回的字符串示例。它充满了\ n和\ t(我想要清理的另一件事),但是你可以看到\ U00a0大约一半。
\n\tDescription
\n
\n\t\U00a0
\n
\n\t
任何帮助将不胜感激。如果您可以找到一种方法让我从字符串中删除它,那么奖励积分。
答案 0 :(得分:1)
看看这个相关问题的答案:
Remove characters from NSString?
我认为您应该能够将您的字符串放入NSMutableString
对象,然后使用NSMutableString的replaceOccurencesOfString: withString: options: range:
方法删除有问题的字符,只需{{1} }作为要替换的字符串。
答案 1 :(得分:0)
这似乎是使用GTMNSString + HTML.h来转换HTML字符的奇怪副产品。该角色最初实际上是一个非破坏性的HTML空间,并在使用gtm_stringByUnescapingFromHTML的过程中转换为\ u00a0。只要在运行gtm_stringByUnescapingFromHTML之前删除字符串,一切似乎都没问题。