zoukankan      html  css  js  c++  java
  • 解决xmlhttp乱码的方法

    我最近也在研究xmlhttp乱码 的解决办法,我测试了一下,下面是测试代码,如果能把escape转换后的编码再转换成中文,输出的时候反操作就解决问题了。

    <SCRIPT language=JavaScript>
    function AddDataPost(sUserId,sUserName)
    {
       var oBao = new ActiveXObject("Microsoft.XMLHTTP");
    sUserId = escape(sUserId);
       sUserName = escape(sUserName);
       var userInfo = "id="+sUserId+"&name="+sUserName;
       oBao.open("POST"," http ://www.ixinu.com/0/Server.asp",false);
       oBao.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gb2312")
       oBao.send(userInfo);
       delete(oBao);
       document.getElementById("data").innerHTML = unescape(oBao.responseText);
    }
    </SCRIPT>

    <INPUT onclick=AddDataPost(document.all.id.value,document.all.name.value) type=button value=submit>

    userid:<INPUT name=id>

    username:<INPUT name=name>
    <SPAN id=data></SPAN>
    <SCRIPT>document.write(""+escape("我")+"");</SCRIPT>
    <SCRIPT>document.write(""+unescape("%u6211")+"");</SCRIPT>

    刚才的那个结果测试已经通过了,还有一个更简单的方法,原来:escape和unescape在JS和ASP里面可以通用,所以直接在输出反编码就得到了中文的输出,而不需要经常其它编码操作了,呵呵!

    客户端代码:

    <SCRIPT language=JavaScript>
    function AddDataPost(sUserId,sUserName)
    {
       var oBao = new ActiveXObject("Microsoft.XMLHTTP");
       sUserId = escape(sUserId);
       sUserName = escape(sUserName);
       var userInfo = "id="+sUserId+"&name="+sUserName;
       oBao.open("POST","Server.asp",false);
       oBao.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=gb2312")
       oBao.send(userInfo);
       delete(oBao);
       document.getElementById("data").innerHTML = unescape(oBao.responseText);
    }
    </SCRIPT>

    <INPUT onclick=AddDataPost(document.all.id.value,document.all.name.value) type=button value=submit> userid:<INPUT name=id>
    username:<INPUT name=name>
    <SPAN id=data></SPAN>
    <SCRIPT>document.write(""+escape("我")+"");</SCRIPT>
    <SCRIPT>document.write(""+unescape("%u6211")+"");</SCRIPT>


    服务器端代码:Server.asp <% Response.Write "<br />"&escape(Request.Form("name"))&vbcrlf  %>

  • 相关阅读:
    一元运算符重载 前置和后置++ --(这种一般用成员函数来实现重载)
    运算符中的二元重载,为什么要调用友元函数而不是全局函数的问题
    关于数组的封装不知道为什么错了,具体代码如下
    关于对象的动态建立和释放
    关于构造函数中调用构造函数的危险
    关于析构函数,构造函数匿名对象的总结,以厚忘了,可以回来观看很全
    关于深拷贝和浅拷贝的疑问
    构造函数的调用大全
    构造函数的调用(其中不包括赋值构造函数)
    LeetCode:Add Digits
  • 原文地址:https://www.cnblogs.com/y0umer/p/3839428.html
Copyright © 2011-2022 走看看