2012-02-07 53 views
1
Dim http As WinHttpRequest 
Set http = New WinHttpRequest 
http.open "POST", "test.php", False 
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
http.send "txtmbx=test" 
msgbox(http.responsetext) 

http.responsetext是西里爾文,我無法閱讀文本。我如何檢索西里爾文?如何獲得西里爾文的答覆文本

回答

0

WinHTTPRequest不支持編碼方法,雖然沒有明確說明,但我希望它使用CP_ACP,這是系統在從接收的字節數據轉換爲字符串時的默認代碼頁。

您可以使用ResponseBody方法將數據獲取爲字節數組,並使用StrConv將字符串轉換爲所需字符串。

+0

感謝您的迴應,它使我走向正確的方向。如果我把我的字符串放在字節數組中並使用responsebody和strConv,當我顯示消息框時,靜態消息是不可讀的,但是如果我保存在文本文件中,例如test.html中帶有,並運行html,字符就好了我使用ADO Stream對象將utf8字節轉換爲字符串。再次感謝 – 2012-02-10 01:46:49

+0

對此使用ADO是極其矯枉過正的。你應該真的使用[MultiByteToWidechar()](http://www.vbforums.com/showthread.php?t=33525) – Deanna 2012-02-10 11:54:14