IOS如何从NSString中删除零宽度空间[E2 80 8B]

时间:2013-05-13 19:56:33

标签: objective-c nsstring

通过复制/粘贴,我的一个客户在我的IOS应用程序的文本字段中放入一个包含零宽度空间[E2 80 8B]的文本,我想删除它们。

这是一个文本示例:bassetempératurevevedégivrageélectrique

我尝试了什么:

NSString* zarb = [NSString stringWithFormat:@"%c%c%c",0xE2,0x80,0x8B];
NSString*resu=[ch stringByReplacingOccurrencesOfString:zarb withString:@""];
// does not work

if ([ch rangeOfString:zarb].location != NSNotFound) {
      // does not work
}

字符串中的六进制序列IS但我无法将其删除。 有人已经遇到这个问题吗?

1 个答案:

答案 0 :(得分:10)

“零宽度空间”是Unicode字符\U200BE2 80 8B是UTF-8编码。

试试这个:

NSString* zarb = @"\u200B";
NSString* resu = [ch stringByReplacingOccurrencesOfString:zarb withString:@""];

BTW - 你的尝试:

NSString* zarb = [NSString stringWithFormat:@"%c%c%c",0xE2,0x80,0x8B];

导致字符串无效,因为808B没有Unicode字符。