首页 > Web开发 > 详细

js escape, encodeURI, encodeURIComponent

时间:2014-10-20 13:37:30      阅读:278      评论:0      收藏:0      [点我收藏+]

 escape,   encodeURI,   encodeURIComponent

1)基本介绍

js 对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,

    相应3个解码函数:decodeURI,decodeURIComponent


2)用途

1、   传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。                            

    例如:"http://www.baidu.com?name="+encodeURIComponent(value);

2、   进行url跳转时可以整体使用encodeURI

    例如:Location.href="/encodeURI"("http://cang.baidu.com/do/s?word=百度&ct=21");

3、   js使用数据时可以使用escape

    例如:对数据简单的操作时。

4、   escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,encodeURIComponent编码结果相同。


3)区别

1、    encodeURIComponent

    将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件。他会将URL的路径分隔符也编码,所以,他只适合编码参数的值

2、    encodeURI

    返回编码为有效的统一资源标识符 (URI) 的字符串,以上是一个参数组件,而这里是一个有效的URL,因为他不对URL特定分隔符编码

3、    escape

    某些字符被替换成了十六进制的转义序列,这个方法不支持被使用,因为压根就没有什么用武之地。

   

 4)经验
1、    最多使用的应为encodeURIComponent,它是将中文、韩文等特殊字符转换成utf-8格式的url编码,所以如果给后台传递参数需要使用encodeURIComponent时需要后台解码对utf-8支持(form中的编码方式和当前页面编码方式相同),后台是直接使用request.getParameter

获取,而不需要其他转换,然而,后台可以使用 java.net.URLEncoder.encode(value,"utf-8")达到与encodeURIComponent(value)相同效果

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

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

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









js escape, encodeURI, encodeURIComponent

原文:http://my.oschina.net/u/1989321/blog/335379

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!