Remplacer caractères accentués dans une chaine


Contenu du snippet

En VB Net voici comment remplacer dans une chaine de caractères les caractères accentués par leurs équivalents non accentués. Ceci fonctionne aussi correctement pour la cédille et les autres caractères diacritiques.

Imports System.Text
Imports System.Globalization

'Fonction qui remplace les caractères accentués par le caractere equivalent non accentué
Public Function ReplaceChars(ByVal source As String) As String
    
    Dim sourceInFormD As String = source.Normalize(NormalizationForm.FormD)
    Dim output As New StringBuilder
    For Each c As Char In sourceInFormD
        Dim uc As UnicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c)
        If uc <> UnicodeCategory.NonSpacingMark Then
            output.Append(c)
        End If
    Next
    Return output.ToString.Normalize(NormalizationForm.FormC)
    
End Function

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.