Подтвердить что ты не робот

С# - ToLower() иногда удаляет точку из буквы "I",

Мы заметили странную ошибку при вызове ToLower() для определенных строк.

Входная строка:

string s = "DocumentInfo";
string t = s.ToLower();
// sometimes, t == documentinfo
// other times, t == documentınfo  (note dot is missing from i - INCORRECT)

Мы передаем строку в запрос веб-службы вниз по течению, поэтому это создает проблемы для нас.

Моя первоначальная догадка заключается в том, что она имеет какое-то отношение к культуре или UICulture, так как некоторые из наших страниц настраивают эти настройки для каждого пользователя.

Может ли это быть проблемой? Есть ли способ заставить это работать правильно?

ОБНОВЛЕНИЕ 2011.07.06

Я обнаружил, что я мог бы дублировать проблему, установив Culture в tr-TR. Не уверен, что на другие культуры влияют.

4b9b3361

Ответ 2

Попробуйте:

s.ToLower(new CultureInfo("en-US", false));

Если вы получите другой результат, ваш CultureInfo.CurrentCulture может быть установлен на что-то еще.