标签: c# indexof
在VS2012的C#中,代码如下:
string test = "[ " + (char)0xFFFD + " ]"; System.Console.WriteLine("{0}", test.IndexOf(" ") == 1);
导致
True
打印到控制台输出窗口。空格由0xFFFD分隔,但它匹配两个连续的空格。这是预期的结果/功能还是(已知)错误?
0xFFFD
答案 0 :(得分:7)
这是预期的结果。 FFFD是"替换字符"在Unicode中,在任何文化中都没有意义。 IndexOf忽略其搜索中的任何无意义字符:
IndexOf
字符集包括可忽略字符,这些字符是执行语言或文化敏感比较时不考虑的字符。