' 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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és8Date d'inscriptionlundi 31 décembre 2001StatutMembreDernière intervention13 septembre 2007 13 sept. 2007 à 11:28
merci très pratique
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 18 oct. 2005 à 16:00
c'ur (oe collé) est converti en c'ur
cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDerniè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és1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 5 sept. 2004 à 13:33
16 sept. 2007 à 12:38
16 sept. 2007 à 12:20
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
13 sept. 2007 à 16:08
www.codeproject.com/useritems/EncodingAccents.asp
13 sept. 2007 à 11:28
18 oct. 2005 à 16:00
18 oct. 2005 à 15:53
www.csharpfr.com/code.aspx?ID=34235
5 sept. 2004 à 13:33