То, почему не делает Đ, сглажено к D при Удалении Диакритических знаков/Диакритических знаков

Я использую этот метод для удаления диакритических знаков из моих строк:

static string RemoveAccents(string input)
{
    string normalized = input.Normalize(NormalizationForm.FormKD);
    StringBuilder builder = new StringBuilder();
    foreach (char c in normalized)
    {
        if (char.GetUnicodeCategory(c) !=
        UnicodeCategory.NonSpacingMark)
        {
            builder.Append(c);
        }
    }
    return builder.ToString();
}

но этот метод оставляет đ как đ и не изменяет его на d, даже при том, что d является своим основным символом. можно попробовать его этой входной строкой "æøåáâăДĺćЗčВęЙěíîďđńňóôőФřůгűüýţ"

Что является настолько особенным в букве đ?

17
задан Martin B 6 December 2010 в 11:05
поделиться

2 ответа

" D со штрихом "(Википедия) используется на нескольких языках и, кажется, считается отдельной буквой во всех из них - и поэтому остается неизменной.

3
ответ дан 30 November 2019 в 14:12
поделиться

Должен признаться, что я не уверен, почему это работает, но похоже, что да

var str = "æøåáâăäĺćçčéęëěíîďđńňóôőöřůúűüýţ";
var noApostrophes = Encoding.ASCII.GetString(Encoding.GetEncoding("Cyrillic").GetBytes(str)); 

=> "aoaaaaalccceeeeiiddnnooooruuuuuyt"

3
ответ дан 30 November 2019 в 14:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: