欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JavaScript中的编码函数

程序员文章站 2022-07-15 14:23:57
...

 

如果想通过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'编码,会对&进行编码

 

例子:

encodeURIComponent(",/?:@&=+$#")                      返回结果:%2C%2F%3F%3A%40%26%3D%2B%24%23
encodeURIComponent("http://www.w3school.com.cn/p 1/") 返回结果:http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F    

encodeURI(",/?:@&=+$#")   			      返回结果:,/?:@&=+$#
encodeURI("http://www.w3school.com.cn/My first/")      返回结果:http://www.w3school.com.cn/My%20first/

 

相关标签: URL编码