日期:2014-05-16  浏览次数:20566 次

Jquery Ajax实现时乱码问题解决方案——escape和unescape
  2345积分换礼,设置首页,领工资 )http://www.2345.com/?k1755560   信不信由你,反正我信了---新闻发言人说

我的整个项目是utf-8编码方式,但是在提交ajax时还会出现乱码,让我十分不解,纠结了好几天。无意间在将escape 和unescape同时在页面上用力,居然乱码不乱了,欣喜啊
   本着知其然还要知其所以然的学习精神,查了网上有关这两个函数的用法,书写如下:
  
  1。函数基本介绍
    escape函数 
    escape 方法返回一个包含了 charstring 内容的字符串值( Unicode 格式)。所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。

字符值大于 255 的以 %uxxxx 格式存储。

   unescape函数
   解码用 escape 方法进行了编码的 String 对象。

    unescape 方法返回一个包含 charstring 内容的字符串值。所有以 %xx 十六进制形式编码的字符都用 ASCII 字符集中等价的字符代替。

以 %uxxxx 格式(Unicode 字符)编码的字符用十六进制编码 xxxx 的 Unicode 字符代替.

  2 在获取dom对象值时,使用escape
  
   //
    var a=escape(document.getElementById("a").value)
   //
    var url="ajax.action?a="+a;

  3 重点啦  在提交ajax前,需要对url使用unescape //
     url =unescape(url);
//将文本框 中的数据发送到页面上
           $.ajax({
                url: url,
                dataType: 'json',
              //网上资料在此处设置编码方式  别忘,号
                contentType: application/x-www-form-urlencoded; charset=UTF-8,                success: handle
              });
          
         }
   4.good luck  baby 反正我的不乱了,仅供参考,

    5.为什么在同一个页面用呢,加密在解密 待解
     网上很多是在页面上用escape 然后 后台写个unescape 函数解析,这样挺符合逻辑的
     但是在同一个页面用,逻辑上挺怪,  大神 点播 我把
 
2345积分换礼,设置首页,领工资 )http://www.2345.com/?k1755560   信不信由你,反正我信了---新闻发言人说