К сожалению, в C # нет способа сделать это по умолчанию;Сначала, когда я посмотрел на ваш вопрос, я догадался, что это может быть что-то, что может исправить установка культуры, например:
string s = "SΨZΣ".ToLower(new CultureInfo("el-GR"));
, но, к сожалению, это не работает.Проблема более сложная, и поэтому мы должны принять собственное решение:
public string GreekToLower(string s)
{
string lowerString = s.ToLower();
// Matches any 'σ' followed by whitespace or end of string
string returnString = Regex.Replace(lowerString, "σ(\\s+|$)", "ς$1");
return returnString;
}
Это строчные буквы вашей строки, а затем поиск любого символа «σ», за которым следует один или несколько пробелов или происходит вконец строки (последнее слово в вашей строке, скорее всего, не будет сопровождаться пробелом), а затем заменяет его на «ς», сохраняя все существующие пробелы, которые он находит.
Regex, вероятно, лучше всего подходит для этихтипы сценариев.Я предполагаю, что вы, вероятно, также захотите убедиться, что греческие диакритические знаки добавляются или удаляются, как тонны для таких слов, как Ρύθμιση -> ΡΥΘΜΙΣΗ.Это можно сделать, но это намного сложнее и потребует более тяжелого регулярного выражения для оценки всех случаев.