2016-04-26 12 views
1

サイトからのデータをフランス語で取り除いています。私はMS XML 6.0を使用している、いくつかの文字が認識されていない正しく (Eなど)ms xml 6.0のutf16のサポート

コード:

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をREPROするためのコードとデータを共有してください:私は、コードを追加しました。 –

答えて

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

これはまさに私が探しているものです! –

関連する問題