JavaScript中的编码函数

如果想通过get方法,提交中文 或 特殊字符等待参数(如&等 ),就须要使用js中的编码函数。

  伦理片 http://www.dotdy.com/

------------------------------------------------------------------------------------

encodeURI()  

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ‘ 0-9,a-z,A-Z

如果你的页面是UTF-8编码,请使用encodeURI。

 

decodeURI()

解码由decodeURI函数编的码

 

------------------------------------------------------------------------------------

encodeURIComponent()

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。

不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

如果你的页面是UTF-8编码,请使用encodeURIComponent。

 

decodeURIComponent()

 

解码由encodeURIComponent函数编的码

 

------------------------------------------------------------------------------------

 

escape()  

采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码

不会被此方法编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

使用了escape之后必须对加号进行编码,否则,当内容含有加号时候会被服务端翻译为空格。

如果你的页面是GBK编码,请使用escape。

   

 

    var encode=function(str){
        str=escape(str);
        str=str.replace(/+/g,"%u002B");
        return str;
    };

 

 

 

 

unescape()

解码由escape函数编的码

 

 

------------------------------------------------------------------------------------

 

以上的函数都不会受页面的编码方法不同的影响,如:

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

 

 

------------------------------------------------------------------------------------

 


encodeURI() 函数可把字符串作为“一整个”URI 进行编码。例如/My first/list.jsp?a=12&b=45&c=89 , &是参数分隔符,所以不会对?,&进
行编码

 

encodeURIComponent() 函数可把字符串作为URI的“一部分”进行编码,例如对'go&state=5'编码,会对&进行编码

 

例子:

Js代码   收藏代码
  1. <span style="font-size: small;">encodeURIComponent(",/?:@&=+$#")                      返回结果:%2C%2F%3F%3A%40%26%3D%2B%24%23  
  2. encodeURIComponent("http://www.w3school.com.cn/p 1/") 返回结果:http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F      
  3.   
  4. encodeURI(",/?:@&=+$#")                   返回结果:,/?:@&=+$#  
  5. encodeURI("http://www.w3school.com.cn/My first/")      返回结果:http://www.w3school.com.cn/My%20first/</span>  

 


伦理片 http://www.dotdy.com/

如果想通过get方法,提交中文 或 特殊字符等待参数(如&等 ),就须要使用js中的编码函数。

 

------------------------------------------------------------------------------------

encodeURI()  

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ‘ 0-9,a-z,A-Z

如果你的页面是UTF-8编码,请使用encodeURI。

 

decodeURI()

解码由decodeURI函数编的码

 

------------------------------------------------------------------------------------

encodeURIComponent()

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。

不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

如果你的页面是UTF-8编码,请使用encodeURIComponent。

 

decodeURIComponent()

 

解码由encodeURIComponent函数编的码

 

------------------------------------------------------------------------------------

 

escape()  

采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码

不会被此方法编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

使用了escape之后必须对加号进行编码,否则,当内容含有加号时候会被服务端翻译为空格。

如果你的页面是GBK编码,请使用escape。

   

 

    var encode=function(str){
        str=escape(str);
        str=str.replace(/+/g,"%u002B");
        return str;
    };

 

 

 

 

unescape()

解码由escape函数编的码

 

 

------------------------------------------------------------------------------------

 

以上的函数都不会受页面的编码方法不同的影响,如:

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

 

 

------------------------------------------------------------------------------------

 


encodeURI() 函数可把字符串作为“一整个”URI 进行编码。例如/My first/list.jsp?a=12&b=45&c=89 , &是参数分隔符,所以不会对?,&进
行编码

 

encodeURIComponent() 函数可把字符串作为URI的“一部分”进行编码,例如对'go&state=5'编码,会对&进行编码

 

例子:

Js代码   收藏代码
  1. <span style="font-size: small;">encodeURIComponent(",/?:@&=+$#")                      返回结果:%2C%2F%3F%3A%40%26%3D%2B%24%23  
  2. encodeURIComponent("http://www.xiubt.com/"
  3.   
  4. encodeURI(",/?:@&=+$#")                   返回结果:,/?:@&=+$#  
  5. encodeURI("http://www.xiubt.com/")      返回结果:http://www.xiubt.com/</span>  

 

如果想通过get方法,提交中文 或 特殊字符等待参数(如&等 ),就须要使用js中的编码函数。

 

------------------------------------------------------------------------------------

encodeURI()  

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。

不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ‘ 0-9,a-z,A-Z

如果你的页面是UTF-8编码,请使用encodeURI。

 

decodeURI()

解码由decodeURI函数编的码

 

------------------------------------------------------------------------------------

encodeURIComponent()

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。

不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z

如果你的页面是UTF-8编码,请使用encodeURIComponent。

 

decodeURIComponent()

 

解码由encodeURIComponent函数编的码

 

------------------------------------------------------------------------------------

 

escape()  

采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码

不会被此方法编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

使用了escape之后必须对加号进行编码,否则,当内容含有加号时候会被服务端翻译为空格。

如果你的页面是GBK编码,请使用escape。

   

 

    var encode=function(str){
        str=escape(str);
        str=str.replace(/+/g,"%u002B");
        return str;
    };

 

 

 

 

unescape()

解码由escape函数编的码

 

 

------------------------------------------------------------------------------------

 

以上的函数都不会受页面的编码方法不同的影响,如:

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

 

 

------------------------------------------------------------------------------------

 


encodeURI() 函数可把字符串作为“一整个”URI 进行编码。例如/My first/list.jsp?a=12&b=45&c=89 , &是参数分隔符,所以不会对?,&进
行编码

 

encodeURIComponent() 函数可把字符串作为URI的“一部分”进行编码,例如对'go&state=5'编码,会对&进行编码

 

例子:

Js代码   收藏代码
  1. <span style="font-size: small;">encodeURIComponent(",/?:@&=+$#")                      返回结果:%2C%2F%3F%3A%40%26%3D%2B%24%23  
  2. encodeURIComponent("http://www.w3school.com.cn/p 1/") 返回结果:http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F      
  3.   
  4. encodeURI(",/?:@&=+$#")                   返回结果:,/?:@&=+$#  
  5. encodeURI("http://www.w3school.com.cn/My first/")      返回结果:http://www.w3school.com.cn/My%20first/</span>  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值