我有以下代码:
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)
大写。
您遇到的确切问题是什么?也许我们可以提供帮助。