通过复制/粘贴,我的一个客户在我的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但我无法将其删除。 有人已经遇到这个问题吗?
答案 0 :(得分:10)
“零宽度空间”是Unicode字符\U200B
。 E2 80 8B
是UTF-8编码。
试试这个:
NSString* zarb = @"\u200B";
NSString* resu = [ch stringByReplacingOccurrencesOfString:zarb withString:@""];
BTW - 你的尝试:
NSString* zarb = [NSString stringWithFormat:@"%c%c%c",0xE2,0x80,0x8B];
导致字符串无效,因为80
和8B
没有Unicode字符。