[xmlhttprequest]xmlhttp中文gbk,uft-8乱码解决方法

更新时间:2016-12-03    来源:中文酷站    手机版     字体:

【www.bbyears.com--中文酷站】

最近用了 dhtmlx的tree,中文的xml居然用不了,报错,整个系统是gb2312的,而dhtmlx只支持utf8,英文是正常的,中文就出错。
 
发现是,microsoft.xmlhttp的原因,就查到了上面的文件。

<script language="vbscript">
"处理中文
function bin2str(bin)
dim tmp,ustr,i
tmp=""
for i=1 to lenb(bin)-1
ustr=ascb(midb(bin,i,1))
if ustr>127 then
i=i+1
tmp=tmp&chr(ustr*256+ascb(midb(bin,i,1)))
else
tmp=tmp&chr(ustr)
end if
next
bin2str=tmp
end function
</script>

下面是一款详细实例

<script language="网页特效">
stra = "submit1=submit&text1=scsdfsd";
var oreq = new activexobject("msxml2.xmlhttp");
oreq.open("post","http://servername/vdir/tstresult.asp教程",false);
oreq.setrequestheader("content-length",stra.length);
oreq.setrequestheader("content-type","application/x-www-form-urlencoded");
oreq.send(stra);
</script>

如果把stra = "submit1=submit&text1=scsdfsd";换成:
stra = "submit1=submit&text1=中文";
你会发现提交上去的东东根本不对,asp中request.form("text1")根本取不到值。俺用request.binaryread把一个html form中的post内容写出来看了看,才发现问题——form提交时也要编码的,编码后的中文是类似于%??%??的转义字符,比如“中文”就被编码为:%d6%d0%ce%c4。呵呵,也怪俺笨,人家content-type里明明写的清清楚楚——application/x-www-form-urlencoded,urlencoded嘛当然就是这个样子了。既然这样,那我们也知道该怎么办了——自己做转换

 

<script language="vbscript">
function urlencoding(vstrin)
strreturn = ""
for i = 1 to len(vstrin)
thischr = mid(vstrin,i,1)
if abs(asc(thischr)) < &hff then
strreturn = strreturn & thischr
else
innercode = asc(thischr)
if innercode < 0 then
innercode = innercode + &h10000
end if
hight8 = (innercode and &hff00) &hff
low8 = innercode and &hff
strreturn = strreturn & "%" & hex(hight8) & "%" & hex(low8)
end if
next
urlencoding = strreturn
end function
stra = urlencoding("submit1=submit&text1=中文")
oreq = createobject("msxml2.xmlhttp")
oreq.open "post","http://servername/vdir/tstresult.asp",false
oreq.setrequestheader "content-length",len(stra)
oreq.setrequestheader "content-type","application/x-www-form-urlencoded"
oreq.send stra
</script>
乱码主要是中文,因为xmlhttp默认发送编码是uft-8所以如果要处理中文就进行url编码就行了。

本文来源:http://www.bbyears.com/kuzhan/28742.html

猜你感兴趣

热门标签

更多>>

本类排行