내가 더 proccessing 얻을 HTML 코드를 사용하는 함수의 소스입니다 :VBA WINHTTP 매핑 문자 여기
Public Function DownloadTextFile(url As String) As String
Dim oHTTP As WinHttp.WinHttpRequest
Set oHTTP = New WinHttp.WinHttpRequest
oHTTP.Open Method:="GET", url:=url, async:=False
oHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
'oHTTP.setRequestHeader "Content-Type", "multipart/form-data; "
oHTTP.setRequestHeader "Content-Type", "text/html; charset=utf-8"
oHTTP.Option(WinHttpRequestOption_EnableRedirects) = True
oHTTP.send
Dim success As Boolean
success = oHTTP.waitForResponse()
If Not success Then
Debug.Print "DOWNLOAD FAILED!"
Exit Function
End If
Dim responseText As String
Debug.Print oHTTP.responseText
responseText = oHTTP.responseText
'Set fs = CreateObject("Scripting.FileSystemObject")
'Set a = fs.CreateTextFile("c:\testfile.txt", True, False)
'Set a = fs.CreateTextFile("c:\testfile.txt", True, True)
'a.WriteLine oHTTP.responseText
'a.Close
Set oHTTP = Nothing
DownloadTextFile = responseText
End Function
그것은 대부분의 페이지에 대한 작동하지만, 일부 페이지의 responseText
는 No Mapping for the Unicode character exists in the target multi-byte code page
입니다.
http://imageshack.us/photo/my-images/585/errsource.png/ : 여기
는responseText
가
No Mapping for the Unicode character exists in the target multi-byte code page
이며 여기 (구글 크롬에서 스크린) 의심 인코딩 될 수없는 문자가되는 웹 페이지의 일례이다
때때로 동일한 웹 사이트에 있지만 다른 검색 결과에 대해이 함수는 오류를 생성하지 않지만 imidi의 HTML 소스 창문은 마치 ?????? ...
아이디어를 얻는 방법은 무엇입니까?
안녕 다니엘위한 responseBody의 사용. 나는 당신의 제안을 확인하고 문제 해결에 대한 진전을 제공한다. – user2127981
스크린 샷의 캐릭터가있는 웹 페이지의 경우 디버거가 "responseText = oHTTP.responseText"코드와 함께 표시하고 oHTTP.responseText에 "매핑하지 않음 ..."이 포함되어 있습니다. – user2127981
그리고 시도해 보셨습니까? responseText = StrConv (oHTTP.responseText, vbUnicode)? – dee