以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教网页提交乱码的问题.  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=33161)

--  作者:ysq128
--  发布时间:2013/5/14 22:31:00
--  请教网页提交乱码的问题.

如果直接在IE地址栏输入:
http://192.168.1.23:8080/?numbers=10086&text=百度
则收到的是乱码
但在google浏览器输入上面的地址收到的正常
不可以修改接收端的程序.所以只能在提交上想办法解决
Dim url As String
Dim http As Object
url = http://192.168.1.23:8080/?numbers=10086&text=百度
http = CreateObject("MSXML2.XMLHTTP")
http.Open("get", url, False)
http.send()
MessageBox.Show("返回信息:" & http.responseText)


应该怎么做调整?

 

抓包分别得到的数据是这样的:

谷歌浏览器

GET /?numbers=10086&text=%E6%88%91%E6%98%AF%E4%BD%99%E4%B8%96%E5%85%A8 HTTP/1.1
Host: 192.168.1.23:8080
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3

 

 

 

IE浏览器

GET /?numbers=10086&text=.... HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.2; WOW64; Trident/6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729)
Host: 192.168.1.23:8080
Connection: Keep-Alive

[此贴子已经被作者于2013-5-14 22:35:19编辑过]

--  作者:baicaocao
--  发布时间:2013/5/14 22:34:00
--  

编码修改成uft8


--  作者:ysq128
--  发布时间:2013/5/14 22:40:00
--  
就是不知道怎么转换UTF8
--  作者:ysq128
--  发布时间:2013/5/14 22:50:00
--  

查到了要自定义函数:

Dim szInput As String =Args(0)
Dim wch, uch, szRet
Dim x
Dim nAsc, nAsc2, nAsc3
For x = 1 To Len(szInput)
    wch = Mid(szInput, x, 1)
    nAsc = AscW(wch)
    If nAsc < 0 Then nAsc = nAsc + 65536
    If (nAsc And &HFF80) = 0 Then
        szRet = szRet & wch
    Else
        If (nAsc And &HF000) = 0 Then
            uch = "%" & Hex(((nAsc \\ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80)
            szRet = szRet & uch
        Else
            uch = "%" & Hex((nAsc \\ 2 ^ 12) Or &HE0) & "%" & _
            Hex((nAsc \\ 2 ^ 6) And &H3F Or &H80) & "%" & _
            Hex(nAsc And &H3F Or &H80)
            szRet = szRet & uch
        End If
    End If
Next
Return  szRet


--  作者:fjlclxj
--  发布时间:2013/5/14 22:57:00
--  
Http.setRequestHeader("context-type","text/xml;charset=GB2312");
GB2312 还是 utf8 自己测试