Vba 使用ms xml 6.0支持utf16
我正在用法语删除一个网站的数据。我使用的是MS XML 6.0,有些字母无法正确识别 (例如) 代码:Vba 使用ms xml 6.0支持utf16,vba,excel,msxml,utf,Vba,Excel,Msxml,Utf,我正在用法语删除一个网站的数据。我使用的是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&l
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
responseText以UTF-8编码。有什么解决方法吗?您首先需要解码页面,因为编码是
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
请将代码和数据共享到repo…@Cindymister:我已经添加了代码。完美这正是我想要的!