当Unicode 0xFFFD在字符串中时,IndexOf匹配 - bug还是功能?

Sha*_*ilS 5 c# indexof

在VS2012的C#中,代码如下:

string test = "[ " + (char)0xFFFD + " ]";
System.Console.WriteLine("{0}", test.IndexOf("  ") == 1);
Run Code Online (Sandbox Code Playgroud)

结果是

True
Run Code Online (Sandbox Code Playgroud)

打印到控制台输出窗口.空格分开0xFFFD但匹配两个连续的空格.这是预期的结果/功能还是(已知)错误?

D S*_*ley 7

这是预期的结果. FFFD是Unicode中的"替换字符",在任何文化中都没有意义. IndexOf忽略其搜索中的任何无意义的字符:

字符集包括可忽略字符,这些字符是在执行语言或文化敏感比较时不考虑的字符.