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

P.K*_*KOD 7 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
}
Run Code Online (Sandbox Code Playgroud)

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

rma*_*ddy 10

"零宽度空间"是Unicode字符\U200B.这E2 80 8B是UTF-8编码.

试试这个:

NSString* zarb = @"\u200B";
NSString* resu = [ch stringByReplacingOccurrencesOfString:zarb withString:@""];
Run Code Online (Sandbox Code Playgroud)

BTW - 您的尝试:

NSString* zarb = [NSString stringWithFormat:@"%c%c%c",0xE2,0x80,0x8B];
Run Code Online (Sandbox Code Playgroud)

导致一个无效的字符串,因为对于任何Unicode字符808B.