2016-04-26 59 views
1

我從法語網站中刪除數據。我使用MS XML 6.0,一些字母沒有被正確識別 (E例如)支持utf16和ms xml 6.0

代碼:

Dim xml_obj As XMLHTTP 
Set xml_obj = New XMLHTTP 
xml_obj.Open "GET", "http://www.emploi.nat.tn/fo/Fr/global.php?page=146&menu1=&FormLinks_Sorting=1&FormLinks_Sorted=&num_page=0&limit=500&numpage=1", False 
xml_obj.send 
Dim htmldoc As New HTMLDocument 
htmldoc.body.innerHTML = xml_obj.responseText 

enter image description here

responseText的以UTF-8編碼。任何解決方法?

+0

請分享代碼和數據瑞普... –

+0

@CindyMeister:我已經添加了代碼。 –

回答

1

您首先需要解碼頁面,因爲編碼是windows-1256。然後直接在文檔中並沒有寫HTML的身體:

Sub UsageExample() 

    Dim req As New MSXML2.ServerXMLHTTP60 ' Microsoft XML, v6.0 ' 
    req.Open "GET", "http://www.emploi.nat.tn/fo/Fr/global.php?page=146&menu1=&FormLinks_Sorting=1&FormLinks_Sorted=&num_page=0&limit=500&numpage=1", False 
    req.Send 

    Dim doc As New MSHTML.HTMLDocument  ' Microsoft HTML Object Library ' 
    WriteDocument doc, req.responseBody, "windows-1256" 

End Sub 

Private Sub WriteDocument(document As Object, data, charset As String) 
    Dim stream As New ADODB.stream ' Microsoft ActiveX Data Objects 6.1 Library ' 
    stream.Open 
    stream.Type = 1 
    stream.Write data 
    stream.Position = 0 
    stream.Type = 2 
    stream.charset = charset 

    document.Open 
    document.Write stream.ReadText 
    document.Close 

    stream.Close 
End Sub 
+0

以後會多謝florent! –

+0

完美這正是我所期待的! –