xmlhttp 中一个编码转换的问题
我有三个文件。
分别是xmlhttp.asp qq.asp qq.aspx(详细请看下面)
现在的问题。我用xmlhttp.asp获取qq.asp的时候不会出错。
获取qq.aspx的时候会出错。Ascb这个函数会出错 一开始我还以为是可以行得通的。后来我知道asp和asp.net的两个输出是不一样的。
我用vs.net 分别调试获取qq.asp 和获取qq.aspx的值
得到下面的情况
asp的时候 xml.ResponseBody是一个如下的数组
206 210 202 199 203 173 (估计是两个表示一个汉字)
aspx的时候得到的是 230 136 145 230 152 175 232 176 129 (估计三个表示一个汉字)
我们在直接看网页的时候。右键看到的编码asp 是 GB3213 aspx 是 UTF-8
那么下面的哪个函数 bytes2BSTR 对asp的编码显然是正确的。 现在需要帮忙的是写一个转aspx
或者给一下。xmlhttp较全的资料 GB3213 UTF-8 编码的资料
xmlhttp
的内容是
<script language="VBscript">
dim xml
dim data
set xml=CreateObject("Msxml2.XMLHTTP")
data=""
xml.open "post","http://binbin/net2/qq.asp",false
xml.setRequestHeader "Content-Type","application/x-www-form-urlencoded"
xml.setRequestHeader "Content-Length",len(data)
xml.send(data)
kk=xml.responseText 'responseText responseBody
document.Write(bytes2BSTR(kk))
function bytes2BSTR(vIn)
dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
strReturn=""
for i=1 to LenB(vIn)
ThisCharCode=AscB(MidB(vIn,i,1))
if ThisCharCode<&H80 Then
strReturn=strReturn & Chr(ThisCharCode)
else
NextCharCode=AscB(MidB(vIn,i+1,1))
strReturn=strReturn&Chr(CLng(ThisCharCode)*&H100+CInt(NextCharCode))
i=i+1
end if
next
bytes2BSTR=strReturn
end function
</script>
qq.asp
<%
Response.write("我是谁")
%>
qq.aspx
<script language="C#" runat="server">
void Page_load()
{
Response.Write("我是谁");
}
</script>