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

一顾念晓

一顾念晓

2016-02-19 19:08

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

  看代码:

           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://m.tulaoshi.com/webkaifa/)

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

  ASP端接收的时候,我用

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

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

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

  开始我以为是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!吃饭去!!

展开更多 50%)
分享

猜你喜欢

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

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

AJAX在Post中文的时候解决乱码的方法

Web开发
AJAX在Post中文的时候解决乱码的方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

AJAX在Post中文的时候乱码的解决方法

Web开发
AJAX在Post中文的时候乱码的解决方法

AJAX POST的使用实例(ASP)

Web开发
AJAX POST的使用实例(ASP)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Acme包中的以Post方式发送数据的例子

编程语言 网络编程
Acme包中的以Post方式发送数据的例子

AJAX POST提交中文乱码解决(jsp)

Web开发
AJAX POST提交中文乱码解决(jsp)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在VB中用代码打印ACCESS报表

在VB中用代码打印ACCESS报表

Asp base64编码、解码函数

Asp base64编码、解码函数
下拉加载更多内容 ↓