我用Winsock提交POST表单到UTF8网页 并读取网页返回的中文提示在VB显示,但是网页是UTF8编码的,所以导致在VB显示乱码,代码如下
Private Sub Command1_Click()
ddd = "sex=1"
c = "POST " & page & " HTTP/1.1" & vbCrLf
c = c & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
c = c & "Host: " & url & vbCrLf
c = c & "Content-Length: " & Len(ddd) & vbCrLf
c = c & vbCrLf
c = c & ddd
Winsock.RemoteHost = url
Winsock.RemotePort = 80
Winsock.protocol = sckTCPProtocol
Winsock.Connect
End Sub
Private Sub Winsock1_Connect()
Winsock1.SendData c
End Sub
Private Sub winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strResponse$
Winsock1.GetData strResponse, vbString, bytesTotal
On Error Resume Next
Text1.Text = strResponse
End Sub
这样 ,Text1.Text 中显示的就是乱码,有什么办法解决?百度 GOOGLE 2天了没满意答案
另外
1.必须用Winsock。
2.网页编码不能由我更改,那是别人的网页。
3.问这样的问题就说明我是新手啦,所以尽量详细哈。
晕,也许是我把问题说复杂了,1,2楼都答非所问,
简单来说把,
字符串变量strResponse 是从UTF8页面获取的中文字符串。如何将他转换为ANSII
和GBK码
VB6.0å¯å£°æä¸ä¸ªObject æ°æ®ç±»åï¼ä½¿ç¨å®çCharsetå±æ§ä¸º"UTF8"ï¼å¯è§£å³TextBoxæ§ä»¶ä¸UTF8ææ¬æ¾ç¤ºä¹±ç é®é¢ã
Object æ°æ®ç±»åï¼Object åéåå¨ä¸º 32 ä½ï¼4
个åèï¼çå°åå½¢å¼ï¼å
¶ä¸ºå¯¹è±¡çå¼ç¨ãå©ç¨ Set è¯å¥ï¼å£°æ为 Object
çåéå¯ä»¥èµå¼ä¸ºä»»ä½å¯¹è±¡çå¼ç¨ã
Charset å±æ§ï¼è®¾ç½®æè è¿ååä½ä¸æç¨å符éã
å®ç°ä»£ç ï¼
Private Sub Command1_Click() 'æå¼UTF-8ææ¬
Dim Ados As Object
CommonDialog1.FileName = ""
CommonDialog1.Filter = "ææ¬æ件ï¼*.txtï¼|*.txt|"
CommonDialog1.Action = 1
str = CommonDialog1.FileName
Set Ados = CreateObject("adodb.stream")
With Ados
.Charset = "utf-8"
.Type = 2
.Open
.LoadFromFile str
Text1.Text = .ReadText
.Close
End With
Set Ados = Nothing
End Sub