Как предотвратить дифференцирование vb.net от а до - PullRequest
1 голос
/ 20 марта 2012

Мы знаем, что функция tolower превратит все А в

Как превратить все а в.

Цель - создание идентификаторов для баз данных, и идентификатор должен быть уникальным. Иногда одни и те же магазины пишутся как à в одном месте и как в других местах. Это создаст проблему с дублирующимся идентификатором.

Так что мне нужна функция, которая превратит все а и все ее вариации в. Точно так же, как это должно стать е.

В основном я бы использовал сортировку utf8_unicode в моих базах данных. Буквы, которые считаются одинаковыми буквами в этом сопоставлении, должны соответствовать одному и тому же символу в этой функции.

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

Как я могу это сделать?

1 Ответ

0 голосов
/ 20 марта 2012
static string RemoveDiacritics(string stIn) 
        { 
            string stFormD = stIn.Normalize(NormalizationForm.FormD); 
            StringBuilder sb = new StringBuilder(); 
            for (int ich = 0; ich < stFormD.Length; ich++) 
            { 
                UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]); 
                if (uc != UnicodeCategory.NonSpacingMark) 
                { 
                    sb.Append(stFormD[ich]); 
                } 
            } 
            return (sb.ToString().Normalize(NormalizationForm.FormC));
        }
...