domingo, 18 de abril de 2010

Removendo Acentuação

Fala, galera!!

Hoje vou postar um código simples, mas bastante útil para retirada de acentuação de uma string.

A essa altura do campeonato, não dá mais para escrever 50 linhas de código com "Replaces" para remover caracteres de acentuação, né?

Então, segue o código "inteligente":


Public Function RemoverAcentos(ByVal Valor As String) As String
        Dim TextoNormalizado As String = Valor.Normalize(NormalizationForm.FormD)
        Dim sbTexto As New StringBuilder

        For i = 0 To TextoNormalizado.Length - 1
            Dim C As Char = TextoNormalizado(i)
            If (CharUnicodeInfo.GetUnicodeCategory(C) <> UnicodeCategory.NonSpacingMark) Then
                sbTexto.Append(C)
            End If
        Next
        Return sbTexto.ToString
End Function


Um abraço e até a próxima!!

2 comentários:

  1. Excelente post, era o que eu precisava.

    Obrigado Rafael

    ResponderExcluir
  2. Que código elegante e funcional. Parabéns
    Não conhecia essas funcionalidades da classe System.Text muito legal mesmo

    ResponderExcluir