【发布时间】:2025-12-27 15:40:12
【问题描述】:
我正在尝试使用带有 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.");
}
我怀疑这个问题是因为这个 Prime 符号 (char)697 被视为重音符号,因此正在更改它之前的字母。 (我不认为它应该是 - 它应该是 the prime symbol,因此不应该改变它前面的数字)。我不确定如何进行测试。我确实尝试了this answer 中提出的方法,但它返回错误:
IsLetterWithDiacritics(text_1[5]) // == False
IsLetterWithDiacritics(fullText[5]) // == False
IsLetterWithDiacritics(fullText[6]) // == False
感谢您的帮助。
【问题讨论】:
-
您是否尝试过使用采用
StringComparison类型的重载并告诉它使用InvariantCulture或Ordinal? -
@BradleyUffner 那行不通,但
fullText.StartsWith(text_1, StringComparison.Ordinal)可以。
标签: c# string escaping diacritics startswith