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:

  1. âãäåçèéêë –> aaaaceeee
  2. ìíîïðñòó –> iiiiðnoo
  3. ôõöùúûüý –> 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 icon smile C#, .NET and Diacritics

ref: Michael Kaplan blog

autor: nuno.lourenco

Tags:

Leave a Reply

*


Better Tag Cloud