[加入收藏]
  • [教程购买]
  • [服务指南]
  • 首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
    应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
    编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
    当前位置 > 文字教程 > asp教程
    Tag:入门,文摘,实例,技巧,iis,表单,对象,上传,数据库,记录集,session,cookies,存储过程,注入,分页,安全,优化,xmlhttp,fso,jmail,application,防盗链,stream,组件,md5,乱码,缓存,加密,验证码,算法,ubb,正则表达式,水印,,日志,压缩,url重写,控件,函数,破解,触发器,socket,ADO,初学,聊天室,留言本,视频教程

    ASP接收Ajax 在POST方式下发送的escape编码中的个别乱码

    文章类别:asp | 发表日期:2008-10-5 20:45:46

    看代码:

             var xmlhttp=getHTTPObject();
      var post="test·test+test·";
      xmlhttp.open('POST', 'test.asp?random='+Math.random(), true);
      xmlhttp.setrequestheader("content-length",post.length);
      xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
      xmlhttp.onreadystatechange = function(){
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200 ){
          alert(xmlhttp.responseText);
          return true;
        }
      }
      xmlhttp.send("act="escape(post));


    在这里,我以POST方式发送了字符串escape("test·test+test·"),并且使用了setRequestHeader

    ASP端接收的时候,我用

    <%Response.CodePage=936%>
    <%Response.Charset="gb2312"
    Response.Write Unescape(Request("act"))
    %>


    最后调试一下你看到的结果就是“·”和“+”都显示不出来。

    开始我以为是asp和javascript的escape unescape不配套的结果,后来我使用vbsunescape(如下)代替unescape问题依然如故。


    <script language="javascript" runat="server">

      function vbsunescape(source){
        return unescape(source);
      }

    </script>


    我把+做了转义,但是·不知道怎么弄,他把·转成了什么我本来想写进一个2进制文件看看(必须是二进制文件),但是在asp下用stream操作2进制文件我老出错,哎没时间弄这个了,还有好多事呢,先凑合转义一下了,这个问题留给看到这个blog的高手们,解决了和我说一声,谢了!


    function escape2(str){
      return escape(str).replace(/\+/g,"%2b");
    }

    --------------------------------------------
    看到大家的回复,谢谢大家。汲取大家的思想精华,我终于研究出来了。。。。

    最终的完美的解决方法是这样的

    发送端用encodeURIComponent(escape(xxxxxxx))就可以了(其他发送接受代码同上)

    我昨天仅作了encodeURI的尝试,没有想到encodeURIComponent和escape套接的方法,刚才突然来了灵感试了一下,太牛逼了,OHYEAH!吃饭去!!

    视频教程列表
    文章教程搜索
     
    Asp推荐教程
    Asp热门教程
    看全部视频教程
    购买方式/价格
    购买视频教程: 咨询客服
    tel:15972130058