XMLHTTP-und Sonderzeichen (z.B. Umlaute)

Ich bin mit Microsoft.XMLHTTP über VBA zu ziehen, die in den Körper einer web-Seite. Dabei werden Zeichen wie é ersetzt mit "?" oder etwas ähnlich nicht sinnvoll.

Hier ist der basic-code:

Set objHTTP = CreateObject("Microsoft.XMLHTTP")

objHTTP.Open "GET", ThisWebPage, False
objHTTP.setRequestHeader "Content-Type", _
      "application/x-www-form-urlencoded; charset=UTF-8"
objHTTP.Send ("")

strResponse = objHTTP.responseText

Gibt es eine Möglichkeit zum abrufen der Seite mit den Sonderzeichen intakt?

Hinweis:
Ich habe auch versucht, mit Hilfe dieses Anfrage-header, aber ohne Erfolg:

objHTTP.setRequestHeader "Content-Type", "content=text/html; charset=iso-8859-1"

Vielen Dank im Voraus.

Lösung

Danke an Ben.Weinberg (und einige oberflächliche Googeln), ich bin in der Lage, ziehen Sie akzentuierte Zeichen mit dem folgenden code:

 ' Create the XMLHTTP object
  Set objHTTP = CreateObject("Microsoft.XMLHTTP")

 ' Send the request
 objHTTP.Open "GET", WhatWebPage, False
 objHTTP.Send ("")

 Dim BinaryStream
 Set BinaryStream = CreateObject("ADODB.Stream")

 With BinaryStream
    .Type = adTypeBinary
    .Open
    .Write objHTTP.ResponseBody

    'Change stream type To binary
    .Position = 0
    .Type = adTypeText

    'Specify charset For the source text (unicode) data.
    .Charset = "iso-8859-1"

    'Open the stream And get binary data from the object
    strResponse = .ReadText
End With
  • Wenn Sie (zB) Spielmann, versuchen Sie einen Blick in den response-header(s) und sehen, was da ist. Fiddler zeigt Ihnen auch die Antwort, so sehen Sie, wie das im Vergleich zu dem Wert von xmlhttp.
  • Sie können bitte werfen Sie einen Blick in meinen code, und sehen Sie, ob Sie mir helfen mit ihm?link
InformationsquelleAutor variant | 2011-08-17
Schreibe einen Kommentar