CreateObject("Microsoft.XMLHTTP") et accents

Bonsoir,

Je souhaite accéder à une page html sur un serveur et j'utilise CreateObject("Microsoft.XMLHTTP").

Mon souci, c'est que je ne récupère pas les caractères spéciaux (é è à ...) mais un ? à la place.

J'ai parcouru ce forum et d'autres et essayé plein de trucs sans succès.

Je joins un fichier de test avec un debug.print qui donne le résultat de la lecture.

Sub GetHtmlPage()
Dim PageHTML         'variable pour l'object "Microsoft.XMLHTTP"( l'object XML)
Dim sUrl As String
    sUrl = "http://www.cistes.net/liste2.php?tc=0&ic=38"
    Set PageHTML = CreateObject("Microsoft.XMLHTTP")    'instancie l'object
    PageHTML.Open "GET", sUrl    'ouvre l'url dans l'object
    PageHTML.setRequestHeader "Content-Type", _
      "application/x-www-form-urlencoded; charset=iso-8859-1"
    PageHTML.Send
    Do: DoEvents: Loop While PageHTML.ReadyState <> 4    'attendre que la page soit chargée

'' Debug.Print PageHTML.getAllResponseHeaders

    'le code source est dans """"PageHTML.ResponseText""""
    Debug.Print PageHTML.ResponseText
End Sub

Vers la fin du debug chercher la ligne (exemple parmi d'autres)

<td class="cell"><span >geracole : Juste une photo, je croix n? 92 . (Voironnais)</span></td>

où n° est remplacé par n?

<td class="cell"><span >chess : C?brit? (Agglom?tion grenobloise)</span></td>

à la place de Célébrité (Agglomération grenobloise)

Merci de votre aide.

bonsoir,

essaie d'appeler cette fonction pour décoder les caractères spéciaux.

 '(...)
debug.print UTF8_Decode(PageHTML.ResponseText)
'(...)
Function UTF8_Decode(ByVal sStr As String)
    Dim l As Long, sUTF8 As String, iChar As Integer, iChar2 As Integer
    For l = 1 To Len(sStr)
        iChar = Asc(Mid(sStr, l, 1))
        If iChar > 127 Then
            If Not iChar And 32 Then ' 2 chars
            iChar2 = Asc(Mid(sStr, l + 1, 1))
            sUTF8 = sUTF8 & ChrW$(((31 And iChar) * 64 + (63 And iChar2)))
            l = l + 1
        Else
            Dim iChar3 As Integer
            iChar2 = Asc(Mid(sStr, l + 1, 1))
            iChar3 = Asc(Mid(sStr, l + 2, 1))
            sUTF8 = sUTF8 & ChrW$(((iChar And 15) * 16 * 256) + ((iChar2 And 63) * 64) + (iChar3 And 63))
            l = l + 2
        End If
            Else
            sUTF8 = sUTF8 & Chr$(iChar)
        End If
    Next l
    UTF8_Decode = sUTF8
End Function

Salut,

Non, j'y avais pensé.

A+

Rechercher des sujets similaires à "createobject microsoft xmlhttp accents"