1

私は本当に奇妙な振る舞いに遭遇しました:

NSLog(@"substring: '%@'\t- length: %d",substring,substring.length);

戻り値

substring: '‍'  - length: 1

サブストリング変数は NSString オブジェクトです。

何が起こっているのか誰か説明してくれませんか...

編集::解決済み

エイミーが答えたように:

目に見えない文字を印刷しています.:‍</p>

ゼロ幅ジョイナー Unicode: U+200D、UTF-8: E2 80 8D

if ([substring isEqualToString:@"\u200d"]) {
    NSLog(@"It is a ZERO WIDTH JOINER...");
}

そして、ヒントをくれた Phillip に感謝します。

4

4 に答える 4

1

見えない空間は?U+200B シンボルの部分文字列を確認するか、ここを見てください http://www.cs.tut.fi/~jkorpela/chars/spaces.html

于 2012-05-30T13:42:36.117 に答える
0

余分な目に見えないものを取り除くために、次を使用してトリミングする必要がありました。

[[NSCharacterSet alphanumericCharacterSet] invertedSet]
于 2013-07-09T22:58:26.863 に答える
0

ある種の空白かもしれません。空白を無視したい場合は、次を試してください。

string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
于 2012-05-30T13:42:48.420 に答える
0

目に見えない文字を印刷しています。:

‍ ZERO WIDTH JOINER Unicode: U+200D、UTF-8: E2 80 8D

于 2012-05-30T13:43:02.350 に答える