Cette fonction prend en entrée un texte html et converti toutes les entités HTML (é) en leur caractère équivalent (é)
Source / Exemple :
'*****************************************************************************************
'fonction pour transformer les entités html en caractères "normaux"
Public Function replace_html_entities(ByVal e_txt As String) As String
'cree un hashtable avec toutes les possibilités
Dim NametoNum As New Hashtable
NametoNum.Add(""", "34")
NametoNum.Add("'", "39")
NametoNum.Add("&", "38")
NametoNum.Add("<", "60")
NametoNum.Add(">", "62")
NametoNum.Add(" ", "160")
NametoNum.Add("¡", "161")
NametoNum.Add("¤", "164")
NametoNum.Add("¢", "162")
NametoNum.Add("£", "163")
NametoNum.Add("¥", "165")
NametoNum.Add("¦", "166")
NametoNum.Add("§", "167")
NametoNum.Add("¨", "168")
NametoNum.Add("©", "169")
NametoNum.Add("ª", "170")
NametoNum.Add("«", "171")
NametoNum.Add("¬", "172")
NametoNum.Add("", "173")
NametoNum.Add("®", "174")
NametoNum.Add("™", "8482")
NametoNum.Add("¯", "175")
NametoNum.Add("°", "176")
NametoNum.Add("±", "177")
NametoNum.Add("²", "178")
NametoNum.Add("³", "179")
NametoNum.Add("´", "180")
NametoNum.Add("µ", "181")
NametoNum.Add("¶", "182")
NametoNum.Add("·", "183")
NametoNum.Add("¸", "184")
NametoNum.Add("¹", "185")
NametoNum.Add("º", "186")
NametoNum.Add("»", "187")
NametoNum.Add("¼", "188")
NametoNum.Add("½", "189")
NametoNum.Add("¾", "190")
NametoNum.Add("¿", "191")
NametoNum.Add("×", "215")
NametoNum.Add("÷", "247")
NametoNum.Add("À", "192")
NametoNum.Add("Á", "193")
NametoNum.Add("Â", "194")
NametoNum.Add("Ã", "195")
NametoNum.Add("Ä", "196")
NametoNum.Add("Å", "197")
NametoNum.Add("Æ", "198")
NametoNum.Add("Ç", "199")
NametoNum.Add("È", "200")
NametoNum.Add("É", "201")
NametoNum.Add("Ê", "202")
NametoNum.Add("Ë", "203")
NametoNum.Add("Ì", "204")
NametoNum.Add("Í", "205")
NametoNum.Add("Î", "206")
NametoNum.Add("Ï", "207")
NametoNum.Add("Ð", "208")
NametoNum.Add("Ñ", "209")
NametoNum.Add("Ò", "210")
NametoNum.Add("Ó", "211")
NametoNum.Add("Ô", "212")
NametoNum.Add("Õ", "213")
NametoNum.Add("Ö", "214")
NametoNum.Add("Ø", "216")
NametoNum.Add("Ù", "217")
NametoNum.Add("Ú", "218")
NametoNum.Add("Û", "219")
NametoNum.Add("Ü", "220")
NametoNum.Add("Ý", "221")
NametoNum.Add("Þ", "222")
NametoNum.Add("ß", "223")
NametoNum.Add("à", "224")
NametoNum.Add("á", "225")
NametoNum.Add("â", "226")
NametoNum.Add("ã", "227")
NametoNum.Add("ä", "228")
NametoNum.Add("å", "229")
NametoNum.Add("æ", "230")
NametoNum.Add("ç", "231")
NametoNum.Add("è", "232")
NametoNum.Add("é", "233")
NametoNum.Add("ê", "234")
NametoNum.Add("ë", "235")
NametoNum.Add("ì", "236")
NametoNum.Add("í", "237")
NametoNum.Add("î", "238")
NametoNum.Add("ï", "239")
NametoNum.Add("ð", "240")
NametoNum.Add("ñ", "241")
NametoNum.Add("ò", "242")
NametoNum.Add("ó", "243")
NametoNum.Add("ô", "244")
NametoNum.Add("õ", "245")
NametoNum.Add("ö", "246")
NametoNum.Add("ø", "248")
NametoNum.Add("ù", "249")
NametoNum.Add("ú", "250")
NametoNum.Add("û", "251")
NametoNum.Add("ü", "252")
NametoNum.Add("ý", "253")
NametoNum.Add("þ", "254")
NametoNum.Add("ÿ", "255")
NametoNum.Add("Œ", "338")
NametoNum.Add("œ", "339")
NametoNum.Add("Š", "352")
NametoNum.Add("š", "353")
NametoNum.Add("Ÿ", "376")
NametoNum.Add("ˆ", "710")
NametoNum.Add("˜", "732")
NametoNum.Add(" ", "8194")
NametoNum.Add(" ", "8195")
NametoNum.Add(" ", "8201")
NametoNum.Add("‌", "8204")
NametoNum.Add("‍", "8205")
NametoNum.Add("‎", "8206")
NametoNum.Add("‏", "8207")
NametoNum.Add("–", "8211")
NametoNum.Add("—", "8212")
NametoNum.Add("‘", "8216")
NametoNum.Add("’", "8217")
NametoNum.Add("‚", "8218")
NametoNum.Add("“", "8220")
NametoNum.Add("”", "8221")
NametoNum.Add("„", "8222")
NametoNum.Add("†", "8224")
NametoNum.Add("‡", "8225")
NametoNum.Add("…", "8230")
NametoNum.Add("‰", "8240")
NametoNum.Add("‹", "8249")
NametoNum.Add("›", "8250")
NametoNum.Add("", "8364")
'recherche les entités via une expression réguliere
Dim myregexp As New Regex("&[a-zA-Z0-9]{2,6}\;", RegexOptions.IgnoreCase)
If myregexp.IsMatch(e_txt) Then
Dim elt As Match
For Each elt In myregexp.Matches(e_txt)
'remplace l'occurence par la valeur associée
e_txt = Replace(e_txt, elt.Value, Chr(NametoNum(elt.Value)))
Next
End If
Return e_txt
End Function
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.