У меня такой код:
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) должен был остаться прежним ... Может ли кто-нибудь помочь мне понять, почему это происходит?
Кстати, здесь есть еще одна тема - Как правильно вводить греческие слова в верхнем регистре в. NET?, но однозначного ответа нет ...
Спасибо. Д.
ToUpper
использует текущийCultureInfo
(если не передается информация о культуре). Какой у васcurrent
CultureInfo`? - person Aliostad   schedule 08.03.2012CultureInfo
? Если вы знаете, что это правильно? - person Oded   schedule 08.03.2012