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"

最新文章

  1. JavaScript中fn()和return fn()
  2. CentOS 7 启动、重启、chkconfig等命令已经合并为systemctl
  3. HAOI2012音量调节
  4. rabbitMQ学习(三)
  5. 一个简单的零配置命令行HTTP服务器
  6. XSS安全性过滤
  7. Standard Error of Mean(s.e.m.)
  8. java经典50编程题
  9. SqlSever2005 一千万条以上记录分页数据库优化经验总结
  10. 20150226—C# winform中的ListView解析
  11. java解惑
  12. 采用subversion管理iOS资源
  13. jsp 、js和css
  14. Java字符串之String与StringBuilder
  15. 十二、Hadoop学习笔记————Hive的基本原理
  16. 98、vue.js简单入门
  17. Windows和Office激活汇总
  18. leetcode — jump-game
  19. trade war
  20. VMware Tools安装教程

热门文章

  1. js将json数据保存下载为json文件
  2. 西湖论剑2023-mp3[wp]
  3. Monstache的安装和使用
  4. redis底层数据结构之压缩列表(ziplist)
  5. requests学习笔记01
  6. 利用canvas合并两个海报
  7. Kubernetes--标签选择器(标签)
  8. QT部署安装以及后续更新(一)
  9. 云函数调用云函数 openid不存在
  10. Python系统模块os.py和sys.py常用函数