【发布时间】:2019-07-06 21:52:11
【问题描述】:
我在 C# 中摆弄解析,发现对于我尝试的每个字符串,string.StartsWith("\u2D2D") 都会返回 true。这是为什么呢?
似乎它适用于每个字符。用 .Net 4.5 尝试了这段代码,调试器没有中断。
for (char i = char.MinValue; i < char.MaxValue; i++)
{
if(!i.ToString().StartsWith("\u2d2d"))
{
Debugger.Break();
}
}
【问题讨论】:
-
这里有一行代码可以检查一堆。为我返回
false:Enumerable.Range(0, 10000).Any(x => !((char)x).ToString().StartsWith("\u2D2D")) -
一定是因为所有的字符串都是格鲁吉亚语:D
-
在此处查看
String.StartsWith的参考源可能会有用:referencesource.microsoft.com/#mscorlib/system/… -
U+2D2D 是在 Unicode 版本 6.1 中添加的,似乎 6.1 的所有 4 个长度字符都有相同的问题。从一些快速测试来看,这似乎适用于所有版本 > 6.0
标签: c# string unicode startswith