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

2016-02-19 19:08 42 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享ASP接收Ajax 在POST方式下发送的escape编码中的个别乱码,希望可以对大家能有小小的帮助。

【 tulaoshi.com - Web开发 】

  看代码:

           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));

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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

  ASP端接收的时候,我用

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

  %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!吃饭去!!

来源:http://www.tulaoshi.com/n/20160219/1620073.html

延伸阅读
标签: Web开发
        很久之前听一位朋友讲过,使用UTF-8编码发送邮件,会有乱码的情况发生。近日为公司开发支持多语言的网站,正好要使用UTF-8编码。网站有会员注册,查询表单等模块皆需要发送邮件给注册用户或者管理员。心里寻思着免不了要和这乱码问题起正面冲突了。       ...
标签: Web开发
jsp页面 : 代码如下: $(document).ready(function() { setInterval(function myTimer() { //alert('a'); getViews(); },1000); }); //播放 function getViews(){ $.ajax({ 'url':"${pageContext.request.contextPath}/video/getVideos.action?r="+Math.random()+"&open=1", 'data': '', 'dataType': 'json', 'type': 'get', ...
标签: Web开发
代码如下: % response.Expires=-1 response.CacheControl="no-cache" % !--#include file="../../conn/conn.asp"-- !--#include file="../psw.asp"-- !--#include file="../../functions/dofunction.asp"-- !--#include file="../../functions/showfunction.asp"-- !--#include file="../../fqdb/admin/website.asp"-- % cmd = che...
标签: Web开发
我这个笨蛋终于调出来了。。。不要问我调出了啥,都写在标题上了。。。。 赶紧写下来,然后睡觉。。。。 目前已经尝试了ASP,JS,C++,C#,前三个都有数月甚至数年的经验了,争取把最后一个也搞大。。。。 接下来搞啥? 切入正题。。。   Windows端应用程序 1,首先建立两个POST变量,这两个POST变量模...
标签: Web开发
ajax.html 程序代码 代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=gb2312" / title兼容多浏览器的AJAX入门实例(超详细注释)/t...

经验教程

37

收藏

39
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部