JS-编码函数:escape(),encodeURI(),encodeURIComponent()

1、escape()

escape()是js编码函数中最古老的一个。虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起。

实际上,escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如“春节”的返回结果是%u6625%u8282,也就是说在Unicode字符集中,“春”是第6625个(十六进制)字符,“节”是第8282个(十六进制)字符。

 escape("\u6625\u8282"); //输出 "%u6625%u8282"

 unescape("%u6625%u8282"); //输出 "春节"

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z。

2、encodeURI()

它于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号“; / ? : @ & = + $ , #”,也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。

encodeURI("http://www.cnblogs.com/fydxx/some other thing"); //=> "http://www.cnblogs.com/season-huang/some%20other%20thing";

它对应的解码函数是decodeURI()。

3、encodeURIComponent()

最后一个Javascript编码函数是encodeURIComponent()。与encodeURI()的区别是,它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

因此,“; / ? : @ & = + $ , #”,这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。

encodeURIComponent("http://www.cnblogs.com/fydxx/some other thing"); //=> http%3A%2F%2Fwww.cnblogs.com%2Fseason-huang%2Fsome%20other%20thing

它对应的解码函数是decodeURIComponent()。

总结:

1、如果只是编码字符串,不和URL有半毛钱关系,那么用escape。

2、如果你需要编码整个URL,然后需要使用这个URL,那么用encodeURI。

3、当你需要编码URL中的参数的时候,那么encodeURIComponent是最好方法。

附:

escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

encodeURI不编码字符有82个:!,#,$,&,‘,(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z

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

时间: 2024-10-10 18:44:58

JS-编码函数:escape(),encodeURI(),encodeURIComponent()的相关文章

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介 2014年10月12日 16806次浏览 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等.关于浏览器参数操作,请看文章http://www.haorooms.com/post/js_url_canshu ,今天主要讲讲e

url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介【转】

引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encodeURI()等等.关于浏览器参数操作,请看文章http://www.haorooms.com/post/js_url_canshu ,今天主要讲讲escape(),encodeURI(),encodeURIComponent()这几个函数的用法和区别. 为啥会有浏览器编码这一说法 一般来说,URL只能

【转】关于URL编码/javascript/js url 编码/url的三个js编码函数

来源:http://www.cnblogs.com/huzi007/p/4174519.html 关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javascript)编码url的相关问题.(js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值.如:http://www.ilcng.com/index.html?id=http://ilcng

关于URL编码/javascript/js url 编码/url的三个js编码函数

关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent() 本文为您讲述关于js(javascript)编码url的相关问题.(js中url编码&符号后传值给其它页面,多参数网址作为整体编码后传值.如:http://www.ilcng.com/index.html?id=http://ilcng.com/xmxy/?id1=1&id2=2)这个时候参数id所获得的值并不是 http:/

JavaScript中有对字符串编码的三个函数:escape,encodeURI,encodeURIComponent

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数  描述  string  必需.要被转义或编码的字符串. 返回值 已编码的

JavaScript中有三个可以对字符串编码的函数,分别是: escape(),encodeURI(),encodeURIComponent()

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 escape(string) 参数  描述  string  必需.要被转义或编码的字符串. 返回值 已编码的

js escape, encodeURI, encodeURIComponent

escape,   encodeURI,   encodeURIComponent 1)基本介绍 js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent, 相应3个解码函数:decodeURI,decodeURIComponent 2)用途 1.   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断. 例如:"http://www.baidu.com?name="+encodeURICom

escape,encodeURI,encodeURIComponent

JavaScript/js中,有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent . escape()函数 定义和用法 :escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法 :escape(string) 参数  描述  :string  必需.要被转义或编码的字符串. 返回值 :已编码的 string 的

escape, encodeURI, encodeURIComponent 的使用情况

escape, encodeURI, encodeURIComponent 的使用情况: 1.js使用数据时可以使用escape: 2.传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断: 3.进行url跳转时可以整体使用encodeURI.例如: Location.href = encodeURI(“http://www.javaweb.cc”): 4.escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下esca

js中的三个编码函数:escape,encodeURI,encodeURIComponent

1. eacape(): 该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / .其他所有的字符都会被转义序列替换.其它情况下escape,encodeURI,encodeURIComponent编码结果相同. escape对0-255以外的unicode值进行编码时输出%u****格式 可以使用 unescape() 对 escape() 编码的字符串进行解码. ECMAScript v3 反对使用该方法,应用使用 deco