escape()、encodeURI()、encodeURIComponent()区别
类别:Web前端 浏览量:753
时间:2014-9-24 escape()、encodeURI()、encodeURIComponent()区别
escape()、encodeURI()、encodeURIComponent()区别一、escape()
1、escape 方法对所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。
2、字符值大于 255 的以 %uxxxx 格式存储。
二、encodeURI()
1、encodeURI 方法只将URI中的空格和非AscII字符进行编码,编码后的URI可以正常访问(ajax中文问题可以使用encodeURI对url进行编码)
2、该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码:;/?:@&=+$,#
三、encodeURIComponent()
1、encodeURIComponent 方法除了将所有的非ASCII字符编码外,还将一些特殊字符进行编码,如?#:,&等,编码后的URI不可访问。
2、请注意,如果该字符串代表一个路径,例如 /folder1/folder2/default.html,其中的斜杠也将被编码。这样一来,当该编码结果被作为请求发送到 web 服务器时将是无效的。
四、escape()、encodeURI()、encodeURIComponent()实例
var url = 'http://www.studyofnet.com/news/617.html?a=TEST1&b=hello world#';
var results = ['URI: ' + url];
// escape
results.push('escape: ' + escape(url));
// encodeURI
results.push('encodeURI: ' + encodeURI(url));
// encodeURIComponent
results.push('encodeURIComponent: ' + encodeURIComponent(url));
document.write(results.join(''));
/*
URI: http://www.studyofnet.com/news/617.html?a=TEST1&b=hello world#
escape: http%3A//www.studyofnet.com/news/617.html%3Fa%3DTEST1%26b%3Dhello%20world%23
encodeURI: http://www.studyofnet.com/news/617.html?a=TEST1&b=hello%20world#
encodeURIComponent: http%3A%2F%2Fwww.studyofnet.com%2Fnews%2F617.html%3Fa%3DTEST1%26b%3Dhello%20world%23
*/
标签:URL编码解码
热门推荐
- docker服务重启容器是否重启(docker自定义网桥docker0及docker的开启,关闭,重启命令操作)
- 怎么把网站放进云服务器(云服务器可以放几个网站?)
- mysql查询慢有哪些原因(MySQL 查询速度慢的原因)
- tomcat服务页面打开超慢(Web服务器Tomcat高级优化)
- MongoDB优化器profile
- django用户权限管理(Django 内置权限扩展案例详解)
- mysql查询条件的优化(MySQL查询优化之查询慢原因和解决技巧)
- dede织梦怎么在文章下面添加图片(dedecms织梦模板用array调用多个自定义字段并判断的方法)
- css3渐变放大功能(CSS3 渐变Gradients之CSS3 线性渐变)
- linuxgdb怎么设置前面的程序(详解Linux下调试器GDB的基本使用方法)