2013-05-13 137 views
7

通过复制/粘贴,我的一个客户端在我的IOS应用程序的文本框中输入了一个包含零宽度空间[E2 80 8B]的文本,我想删除他们。IOS如何从NSString中删除零宽度空间[E2 80 8B]

这里是文本的例子:巴塞温度AVECdégivrageELECTRIQUE

我的尝试:

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 
} 

的六序列在字符串中,但我无法将其删除。 有人已经有这个问题?

回答

11

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

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

导致一个无效的字符串:你试图这样做 - BTW

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

试试这个。

+0

Coooool非常感谢Maddy,它完美地与您的解决方案配合使用。 – 2013-05-13 20:21:23