ENLEVER LES ACCENTS

cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018 - 5 sept. 2004 à 13:33
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018 - 16 sept. 2007 à 12:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25946-enlever-les-accents

cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
16 sept. 2007 à 12:38
Pour VB6 voir ici : www.vbfrance.com/code.aspx?ID=33666
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
16 sept. 2007 à 12:20
Voici une mise en oeuvre de cette solution :

Dim aOctets As Byte() = GetEncoding("iso-8859-8").GetBytes(sChaine)
sEnleverAccents = GetEncoding(1252).GetString(aOctets)

Const sEncodageIso8859_15$ = "iso-8859-15"
' Frédéric François, c'ur
' iso-8859-8 -> windows-1252 : Frederic Francois, cour ' Meilleure solution
' iso-8859-15 -> windows-1252 : Frédéric François, c½ur ' Utile pour détecter <>
' windows-1251 -> windows-1252 : Frederic Francois, c'ur ' Ancienne solution

' Détection des caractères propres à iso-8859-15 : ¤ ¦ ¨ ´ ¸ ¼ ½ ¾ ? ? ? ? ? ? ? ?
' http://fr.wikipedia.org/wiki/ISO_8859-15
If String.Compare( _
GetEncoding(sEncodageIso8859_15).GetString( _
GetEncoding(1252).GetBytes(sChaine)), sChaine) = 0 Then _
Exit Function

Dim i% = 0
Dim iLen% = sChaine.Length
Dim sChaineIso$ = GetEncoding(sEncodageIso8859_15).GetString( _
GetEncoding(1252).GetBytes(sChaine))
Dim ac1, ac2, ac3 As Char()
ac1 = sChaine.ToCharArray
ac2 = sChaineIso.ToCharArray
ac3 = sEnleverAccents.ToCharArray
Dim sbDest As New StringBuilder
For i = 0 To iLen - 1
If ac1(i) <> ac2(i) Then
Select Case ac1(i) ' ¤ ¦ ¨ ´ ¸ ¼ ½ ¾ ? ? ? ? ? ? ? ?
Case "¤"c : sbDest.Append("o")
Case "¦"c : sbDest.Append("|")
Case "¨"c : sbDest.Append("..")
Case "´"c : sbDest.Append("'")
Case "¸"c : sbDest.Append(",")
Case "¼"c : sbDest.Append("1/4")
Case "½"c : sbDest.Append("1/2")
Case "¾"c : sbDest.Append("3/4")
Case "?"c : sbDest.Append("E")
Case "?"c : sbDest.Append("S")
Case "?"c : sbDest.Append("s")
Case "?"c : sbDest.Append("Z")
Case "?"c : sbDest.Append("z")
Case "?"c : sbDest.Append("oe")
Case "?"c : sbDest.Append("OE")
Case "?"c : sbDest.Append("Y")
Case Else
If bDebug Then Debug.WriteLine("?? : " & ac1(i))
End Select
Else
sbDest.Append(ac3(i))
End If
Next i
sEnleverAccents = sbDest.ToString
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
13 sept. 2007 à 16:08
Il y a une meilleure solution ici :
www.codeproject.com/useritems/EncodingAccents.asp
cs_pacman Messages postés 8 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 13 septembre 2007
13 sept. 2007 à 11:28
merci très pratique
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
18 oct. 2005 à 16:00
c'ur (oe collé) est converti en c'ur
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
18 oct. 2005 à 15:53
Voir aussi la méthode explicite :
www.csharpfr.com/code.aspx?ID=34235
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
5 sept. 2004 à 13:33
Note : j'ai trouvé ce code sur le web.
Rejoignez-nous