encodeURI和encodeURIComponent
2024-09-08 18:54:58
encodeURI和encodeURIComponent的作用对象都是URL,唯一的区别就是编码的字符范围:
- encodeURI不会对ascii字母、数字、~!@#$&*()=:/,;?+' 进行编码。
- encodeURIComponent不会对ascii字母、数字、~!*()'进行编码。
所以encodeURIComponent比encodeURI的编码范围更大。比如说,encodeURIComponent会把 http://
编码成 http%3A%2F%2F
,而encodeURI不会。
一个字符串需要编码,说明其中有一些字符不适合传输。
如果要将一个URL通过网络传输,则需要使用encodeURI编码。比如URI中出现了中文,中文在网络中是不能直接传输的,需要经过URI编码。
事实上,我们在浏览器中输入一个含有中文参数的URL,在发出请求后,会自动使用encodeURI进行编码。
如果要将一个URL作为一个查询参数放到另一个URL中,则需要使用encodeURIComponent编码。因为这个作为参数的URL中会包含
:/?=&
这些字符,如果不加处理,会解析错误。
const uri = 'https://www.test.com/person/index.asp?name=张三&age=12'
encodeURI(uri) // "https://www.test.com/person/index.asp?name=%E5%BC%A0%E4%B8%89&age=12"
encodeURIComponent(uri) // "https%3A%2F%2Fwww.test.com%2Fperson%2Findex.asp%3Fname%3D%E5%BC%A0%E4%B8%89%26age%3D12"
最新文章
- JavaScript中fn()和return fn()
- CentOS 7 启动、重启、chkconfig等命令已经合并为systemctl
- HAOI2012音量调节
- rabbitMQ学习(三)
- 一个简单的零配置命令行HTTP服务器
- XSS安全性过滤
- Standard Error of Mean(s.e.m.)
- java经典50编程题
- SqlSever2005 一千万条以上记录分页数据库优化经验总结
- 20150226—C# winform中的ListView解析
- java解惑
- 采用subversion管理iOS资源
- jsp 、js和css
- Java字符串之String与StringBuilder
- 十二、Hadoop学习笔记————Hive的基本原理
- 98、vue.js简单入门
- Windows和Office激活汇总
- leetcode — jump-game
- trade war
- VMware Tools安装教程