我有以下代碼:.NET微(μ)希臘字母大寫問題
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代碼中的微號)應該保持不變......有人可以幫助我理解爲什麼會發生這種情況?
Aparently,這裏還有另外一個話題 - How to correctly uppercase Greek words in .NET?,但沒有明顯的答案...
感謝。 D.
ToUpper使用當前的CultureInfo(除非傳遞文化信息)。你現在的'CultureInfo'是什麼? – Aliostad 2012-03-08 11:37:08
[第二次測試的基本原理是什麼?](http://stackoverflow.com/a/9617044/7724)你會期望得到的兩個大寫字符串實際上是什麼?你會期望U00b5不會改變,因爲它「不是一封信」?另外,這裏不涉及ASCII。 – bzlm 2012-03-08 11:37:22
爲什麼你**不**使用'CultureInfo'?如果你知道它正確的做法? – Oded 2012-03-08 11:37:30