当下一个字符是Prime符号(char)697时,String.StartsWith not working

Ben*_*Ben 7 c# string escaping startswith diacritics

我正在尝试使用带有Prime符号的字符串,但我遇到了String.StartsWith方法的一些问题.为什么以下代码抛出异常?

string text_1 = @"123456";
string text_2 = @"?ABCDEF";

string fullText = text_1 + text_2;
if (!fullText.StartsWith(text_1))
{
    throw new Exception("Unexplained bad error.");
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这个问题是因为这个Prime符号(char)697被视为重音,因此正在改变它之前的字母.(我不认为它应该是 - 它应该是主要符号,所以不应该改变它前面的数字).我不确定如何测试这个.我确实尝试了这个答案中提出的方法,但它返回false:

IsLetterWithDiacritics(text_1[5]) //  == False
IsLetterWithDiacritics(fullText[5]) // == False
IsLetterWithDiacritics(fullText[6]) // == False
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Sco*_*ion 3

\xca\xb9MODIFIER LETTER PRIME是空格修饰符字母。它不是真正的字符,而是修饰前面字符的特殊用途符号。

\n\n

来自 MSDN

\n\n
\n

修饰符字母是独立的空格字符,与组合字符一样,表示对前一个字母的修改。

\n
\n\n
\n\n

string.StartsWith返回 false 是因为在连接的字符串中,6实际上是由其后附加的质数符号修改的。

\n