文档章节

js escape, encodeURI, encodeURIComponent

learn_more
 learn_more
发布于 2014/10/20 13:06
字数 559
阅读 133
收藏 11

 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









本文转载自:http://blog.sina.com.cn/s/blog_af99bd500101a479.html

learn_more
粉丝 94
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
JS对URL字符串进行编码/解码分析

一、为什么要进行js编码和解码? 只有字母和数字[0-9a-zA-Z]、一些特殊符号“$-_.+!*'(),”[不包括双引号]、以及某些保留字,才可以不经过编码直接用于URL。 出现的情况: 网址路径中包含汉字...

qq_38055050
2018/05/12
0
0
escape()、encodeURI()、encodeURIComponent()区别详解

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 es...

小编辑
2012/02/21
574
1
js中escape,encodeURI,encodeURIComponent三个函数的区别

js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、 传递参数时需要使用encodeURIComponent,这样组合的url...

阿秀a
2010/05/18
0
0
JS URL传中文参数引发的乱码问题

今天的项目中碰到了一个乱码问题,从JS里传URL到服务器,URL中有中文参数,服务器里读出的中文参数来的全是“?”,查了网上JS编码相关资料得以解决。 解决方法如下: 1、在JS里对中文参数进...

jxlgzwh
2014/03/19
0
0
javaScript中URL编码转换,escape() encodeURI() encodeU...

在使用url进行参数传递时,经常会传递一些中文名的参数或URL地址,在后台处理时会发生转换错误。在有些传递页面使用GB2312,而在接收页面使用UTF8,这样接收到的参数就可能会与原来发生不一致...

冬梅树下栖息冬狼
2013/10/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jenkins定时构建时间设置

举几个例子: 每隔5分钟构建一次 H/5 * * * * 每两小时构建一次 H H/2 * * * 每天中午12点定时构建一次 H 12 * * * 每天下午18点定时构建一次 H 18 * * * 在每个小时的前半个小时内的每10分钟...

shzwork
10分钟前
0
0
Myeclipse 问题记录

1. 创建maven聚合(pom) 工程 ,子项目会带上 maven app这些文字,删掉后会导致工程文件在working set里消失,解决办法:右键子项目 import as project 解决问题。...

无敌小学僧
38分钟前
0
0
《Chez Scheme初探》定义变量、递归、测试性能、并列代码编写

普通fib函数 (define (fact n) (if (= n 1) 1 (* n (fact (- n 1)) ) )) 尾递归fib函数 (define (fact-tail n) (fact-rec n n))(defi......

flash胜龙
38分钟前
0
0
任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击!

任正非对华为热点问题的回应亮了,终于知道华为为什么能扛过这一次的冲击! 如果你是华为的老板,看到一条传遍网络的“美国封锁华为”、“华为禁令”的消息,你会怎么办? 昨天上午,华为创始...

forespider
今天
2
0
Java HTTP 组件库选型看这篇就够了

最近项目需要使用 Java 重度调用 HTTP API 接口,于是想着封装一个团队公用的 HTTP client lib. 这个库需要支持以下特性: 连接池管理,包括连接创建和超时、空闲连接数控制、每个 host 的连...

Java面经
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部