Soyez le premier à donner votre avis sur cette source.
Snippet vu 19 539 fois - Téléchargée 33 fois
Private Function sEnleverAccents$(ByVal sChaine$) ' Enlever les accents et convertir en minuscules ' cur est converti en c?ur ' Codepage 1241 = "windows-1251" = cyrillic ' Tableau de caractères sur 8 bit Dim aOctets As Byte() = System.Text.Encoding.GetEncoding(1251).GetBytes(sChaine) ' Chaîne de caractères sur 7 bit sEnleverAccents = System.Text.Encoding.ASCII.GetString(aOctets).ToLower End Function
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
www.codeproject.com/useritems/EncodingAccents.asp
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.