C#, .NET and Diacritics
Talvez se perguntem, hein? Pois a ideia é saber “converter” texto com acentuação e não só, pelo corresponde texto sem acentuação. Ora dito isto o que se quer:
- âãäåçèéêë –> aaaaceeee
- ìíîïðñòó –> iiiiðnoo
- ôõöùúûüý –> ooouuuuy
Ora então o código que possibilita a alteração:
1: public string RemoveDiacritics(string input)
2: {
3: string stFormD = input.Normalize(NormalizationForm.FormD);
4: var sb = new StringBuilder();
5:
6: for (int i = 0; i < stFormD.Length; i++)
7: {
8: UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[i]);
9: if (uc != UnicodeCategory.NonSpacingMark)
10: {
11: sb.Append(stFormD[i]);
12: }
13: }
14:
15: return (sb.ToString().Normalize(NormalizationForm.FormC));
16: }
Happy Coding
ref: Michael Kaplan blog
autor: nuno.lourenco