.net micro(μ)希腊字母大写问题

dcg*_*dcg 1 c# uppercase

我有以下代码:

 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);
Run Code Online (Sandbox Code Playgroud)

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

显然,这里有另一个线程 - 如何正确地在.NET中大写希腊语单词?,但没有明显的答案......

谢谢.D.

Han*_*ant 5

在上壳体之后,微秒仍然是μSEC.将其升级为MSEC将致命地改变其含义.这就是为什么字形有两个代码点.