我有以下代码:

 string firstMicro = "aa \u00b5 bb";
 string secondMicro = "aa \u03bc bb";

 Assert.IsFalse(firstMicro == secondMicro);

 string upperFirstMicro = firstMicro.ToUpper();
 string upperSecondMicro = secondMicro.ToUpper();

 Assert.IsFalse(upperFirstMicro == upperSecondMicro);


在我的情况下,第一个测试通过(显然,两个字符串都不同),但是在第二个情况下,由于两个文本相同($ AA M BB),所以测试失败。我承认在一种情况下我应该使用CultureInfo-但至少在第一种情况下(ASCII代码中的微符号)应该保持不变...有人可以帮助我理解为什么会这样吗?

显然,这里有另一个线程-How to correctly uppercase Greek words in .NET?,但是没有明显的答案...

谢谢。
D.

最佳答案

一些小写字母具有相同的大写字母。抱歉,但这就是Unicode定义的方式。

例如,如您在官方UnicodeData.txt中看到的,U+0069 (i)U+0131 (ı)都用U+0049 (I)大写。

您遇到的确切问题是什么?也许我们可以提供帮助。

10-06 04:37