9

私のクライアントの 1 人がコピー アンド ペーストを使用して、IOS アプリのテキスト フィールドに Zero Width Space [ E2 80 8B ] を含むテキストを入力しましたが、それらを削除したいと考えています。

テキストの例は次のとおりです。

私が試したこと:

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
}

文字列に 16 進シーケンスが含まれていますが、削除できません。誰かがすでにこの問題を抱えていますか?

4

1 に答える 1

13

「ゼロ幅スペース」は Unicode 文字\U200Bです。はE2 80 8BUTF-8 エンコーディングです。

これを試して:

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

ところで - あなたの試み:

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

80およびには Unicode 文字がないため、無効な文字列になり8Bます。

于 2013-05-13T20:02:53.860 に答える