1

我遇到了一个非常奇怪的行为:

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

返回

substring: '‍'  - length: 1

substring 变量是一个 NSString 对象。

有人可以解释发生了什么...

编辑::解决

正如艾米回答的那样:

它正在打印一个不可见的字符。:‍</p>

零宽度连接器 Unicode:U+200D,UTF-8:E2 80 8D

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

并感谢菲利普的小费。

4

4 回答 4

1

看不见的空间呢?您应该检查 U+200B 符号的子字符串,或查看此处http://www.cs.tut.fi/~jkorpela/chars/spaces.html

于 2012-05-30T13:42:36.117 回答
0

可能是某种空白。如果要忽略空格,可以尝试:

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

它正在打印一个不可见的字符。:

‍ 零宽度连接器 Unicode:U+200D,UTF-8:E2 80 8D

于 2012-05-30T13:43:02.350 回答
0

我不得不使用以下内容进行修剪以消除一些额外的隐形。

[[NSCharacterSet alphanumericCharacterSet] invertedSet]
于 2013-07-09T22:58:26.863 回答