IOS Как удалить пространство нулевой ширины [E2 80 8B] из NSString

с копией / вставкой один из моих клиентов поместил в текстовое поле моего приложения IOS текст, содержащий пространство нулевой ширины [ E2 80 8B], и я хочу удалить их.

вот пример текста: basse température avec dé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
}

последовательность hexa находится в строке, но я не могу ее удалить. У кого-то уже есть эта проблема ?

1 ответов


"пространство нулевой ширины" - это символ Юникода \U200B. The 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.