ajax中传递参数出现的乱码

      今天修改页面的时候,在js中传递了一个包含查询语句,格式:XX like '%9524%',在一般处理文件中获取的时候发现前面的%95变成了乱码,于是上网查询相关资料,最后使用了encodeURIComponent方法,将语句进行转换,查询正常工作了。

 

将查询到的资料整理如下:

1、encodeURIComponent,来自于:window.encodeURIComponent。

 

2、关于这个方法的英文解释【主要可以看出这个方法使用的编码格式是 UTF-8】:

When a character to be included in a URI is not listed above or is not intended to have the special meaning sometimes given to the reserved characters, that character must be encoded. The character is first transformed into a sequence of octets using the UTF-8 transformation, with surrogate pairs first transformed from their UCS-2 to UCS-4 encodings. (Note that for code points in the range [0,127] this results in a single octet with the same value.) The resulting sequence of octets is then transformed into a string with each octet represented by an escape sequence of the form "% xx".

 

3、encodeURI()和encodeURIComponent()的区别:

A、encodeURI()方法:不对URI中的特殊字符进行编码,如冒号、前斜杠、问号和英镑符号

B、encodeURIComponent():对它发现的所有非标准字符进行编码。

4、decodeURI()和decodeURIComponent():

这两个方法是和上述两个方法相对的方法,就像js中的计时器、添加事件等方法是一样的意义,用于解码。

 

5、上述方法和BOM的escape()和unescape()的区别:

A、上述方法会对所有Unicode符号编码

B、BOM方法只能对ASCII符号正确编码

 

6、一般使用代码:

  1. function qs(url) { 
  2. if (window.RegExp && window.encodeURIComponent)
  3. {
  4.      return encodeURIComponent(url); 

7、google的使用案例:

  1. function qs(el) 
  2. {
  3.    if (window.RegExp && window.encodeURIComponent) 
  4.    {
  5.      var ue=el.href;var qe=encodeURIComponent(document.gs.q.value);
  6.     
  7.      if(ue.indexOf("q=")!=-1)
  8.      {
  9.         el.href=ue.replace(new RegExp("q=[^&$]*"),"q="+qe);
  10.      }
  11.      else
  12.      {
  13.         el.href=ue+"q="+qe;
  14.      }
  15.    }
  16.    
  17.    return 1;
  18. }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值