【发布时间】:2021-05-17 21:30:18
【问题描述】:
在处理一个问题时,我遇到了一个有趣的用例。 StartsWith 方法(可能还有其他一些方法)在以下两种情况下返回 true:
"\u0000Example".StartsWith("Example"); // returns true
"\u0000Example".StartsWith("\u0000Example"); // returns true
包含此示例和单元测试的存储库:https://github.com/DeanMilojevic/UnicodeInvestigation
由于我没有时间深入研究该方法的实现,我想知道这是一个“错误”还是预期的行为?
否则,当我在空闲时间发现更多信息时,会用更多信息更新问题。
【问题讨论】:
-
这是另一个数据点:
"\u0000Example".StartsWith("Example", StringComparison.Ordinal) -
另外,请注意,这在 .NET 5 中发生了变化,这强烈表明它与从 NLS 到 ICU 的转变有关
-
@canton7 我对此也有同样的感觉。当我找到一些时间时,正计划调试并查看某一时刻发生了什么。我正在考虑是否也可以在 GitHub 上提交票证。
标签: c# asp.net-core