首 页 | 联系我们 | 关于优化网 | 中国阀门网-阀门88网 WEB优化行业门户网站-WEB-YOUHUA.CN
当前位置 : 首页 >> Linux技术 >> xmlhttp中文gbk,uft-8乱码解决方法
返回首页

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

时间:2011-1-12 14:50:00 来源:中国优化网 作者:hehua89 人气: 1428 发表评论  匿名投稿
最近用了 dhtmlx的tree,中文的xml居然用不了,报错,整个系统是gb2312的,而dhtmlx只支持utf8,英文是正常的,中文就出错。发现是,microsoft.xmlhttp的原因,就查到了上面的文件。 &(中国阀门网-中国泵阀网-五金机械网)

最近用了 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编码就行了。

”欢迎转载www.web-youhua.com文章,谢谢

(责任编辑:hehua89)
------分隔线----------------------------
本公司致力于网站建设,网站优化,搜索引擎优化(SEO),Google左侧排名等服务。欢迎转载收藏web-youhua.com
用户名:  验证码:   
理智评论文明上网,拒绝恶意谩骂  [ 查看全部 ] 网友评论
相关推荐