Возможно, это не работает, потому что вы пытаетесь сопоставить символ напрямую. Мой метод работает, и я использовал коды Unicode для соответствия специальным символам, используя эту диаграмму Unicode . Вам не нужно перебирать каждый символ, потому что Replace()
заменяет все экземпляры этого символа.
public string UrlCorrection(string text)
{
text = text.ToLower().Trim();
text = text
.Replace('\u00E7','c')
.Replace('\u0131','i')
.Replace('\u00FC','u')
.Replace('\u011F','g')
.Replace('\u00F6','o')
.Replace('\u015F','s');
return text;
}
Я проверил это с твоими специальными символами, и оно отлично работает для меня.