【发布时间】:2012-05-18 18:25:51
【问题描述】:
我有以下代码:
string input = "ç";
string normalized = input.Normalize(NormalizationForm.FormD);
char[] chars = normalized.ToCharArray();
我在 64 位 Windows 7 上使用 Visual Studio 2010 .net4 构建此代码。
我在两个上下文中的单元测试项目(平台:任何 CPU)中运行它并检查 chars 的内容:
在msdn documentation 中,我找不到任何表现不同行为的信息。
那么,为什么我会得到不同的行为?对我来说,NCrunch 行为是预期的,但我希望其他人也是如此。
编辑: 我切换回 .Net 3.5 仍然遇到同样的问题。
【问题讨论】:
-
嗯,我用 Visual Studio 得到 { 99, 807 }...这意味着您的项目配置存在一些问题...也许吧。
-
@zmilojko。感谢您的测试。在一个空白的新项目中,我得到了与您相同的结果。所以我正在检查两个项目之间的差异(csproj 上的 winmerge),但还没有找到相关的,这就是我发布这个问题的原因:了解哪个上下文可能导致不同的行为。
-
Thread.CurrentThread.CurrentCulture在每种情况下是什么? -
如何'查看
chars'的内容? -
@MattHickford,我将鼠标轻轻移动到调试器中的
chars变量上,然后展开+符号。
标签: c# .net unicode normalization unicode-normalization