Ajax 乱码详细 中介绍了解决 Ajax 乱码的本质方法,但是有时我们无法更改服务端的程序的编码,怎么办呢?
这里有一种解决办法。
首先添加一个 VBScript 函数
function bytes2BSTR(vIn)
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
然后在 Ajax 中调用这个函数以获得返回值
bytes2BSTR(xmlhttp.responseBody)
这里 JavaScript 中调用了 VBScript 中的函数
说明
Ajax 中请求的 URL 不是 Ajax 程序所在的站点,可能会涉及到没有权限的问题。