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)
谢谢你的帮助.
\xca\xb9
或MODIFIER LETTER PRIME是空格修饰符字母。它不是真正的字符,而是修饰前面字符的特殊用途符号。
\n\n\n修饰符字母是独立的空格字符,与组合字符一样,表示对前一个字母的修改。
\n
string.StartsWith
返回 false 是因为在连接的字符串中,6实际上是由其后附加的质数符号修改的。