1 区别

1.1 encodeURI()

encodeURI()通常用于转码整个 URL,不会对URL 元字符以及语义字符进行转码,URL元字符:

URL 元字符:分号(;),逗号(,),斜杠(/),问号(?),冒号(:),at(@),&,等号(=),加号(+),美元符号($),井号(#

语义字符:a-zA-Z0-9,连词号(-),下划线(_),点(.),感叹号(!),波浪线(~),星号(*),单引号('),圆括号(()

1.2 encodeURIComponent()

encodeURIComponent()通常只用于转码URL组成部分,如URL中?后的一串;会转码除了语义字符之外的所有字符,即元字符也会被转码
注:若整个链接被encodeURIComponent()转码,则该链接无法被浏览器访问,需要解码之后才可以正常访问。

2 使用场景

  对于无特殊参数的链接,都可以使用encodeURI()进行转码,那什么特殊情况需要用到encodeURIComponent()呢?通常是链接带着一些特殊参数的时候,就比如以下链接:

https://www.baidu.com/s?returnURL=http://www.test.com/

链接内包含一个回调地址,回调地址是另外一个URL,此时我们就需要使用encodeURIComponent()对回调地址进行转码,这样一来,URL中就不会出现多个http://,多个&这样的特殊字符;方便对回调地址进行处理;以上链接处理如下:

// 对URL中的回调链接进行转码
'https://www.baidu.com/s?returnURL=' +encodeURIComponent('http://www.test.com/')
//输出: "https://www.baidu.com/s?returnURL=http%3A%2F%2Fwww.test.com%2F"

参考博客:URL 编码与解码使用详解

encodeURI()、encodeURIComponent()区别及使用场景相关推荐

  1. encodeURI encodeURIComponent 的区别,和使用场景

    encodeURI encodeURIComponent 的区别,和使用场景 一. ncodeURI 和 encodeURIComponent 之前一直不了解这两个的区别,现在知道了: encodeU ...

  2. escape()、encodeURI()、encodeURIComponent()区别详解

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  3. JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解...

    转:http://www.cnblogs.com/qiantuwuliang/archive/2009/07/19/1526687.html //该方法不会对 ASCII 字母和数字进行编码,也不会对 ...

  4. js符号转码_JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解...

    转:http://www.cnblogs.com/qiantuwuliang/archive/2009/07/19/1526687.html //该方法不会对 ASCII 字母和数字进行编码,也不会对 ...

  5. JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解

    JS 字符串编码函数(解决URL特殊字符传递问题):escape().encodeURI().encodeURIComponent()区别详解 参考文章: (1)JS 字符串编码函数(解决URL特殊字 ...

  6. escape()、encodeURI()、encodeURIComponent()区别

    JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...

  7. escape,encodeURI,encodeURIComponent有什么区别?

    一.escape escape是对字符串进行编码,使得可以在所有的电脑上可读,但是encodeURI和encodeURIComponent是对URL进行编码的.escape和后两者几乎没关系. esc ...

  8. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介

    转载地址:http://www.haorooms.com/post/js_escape_encodeURIComponent 引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器ur ...

  9. url的三个js编码函数escape(),encodeURI(),encodeURIComponent()简介【转】

    引子 浏览器URl地址,上网一定会用到,但是浏览器地址有中文或者浏览器url参数操作的时候,经常会用到encodeURIComponent()和decodeURIComponent()以及encode ...

最新文章

  1. UIView常用的一些方法小记之setNeedsDisplay和setNeedsLayout
  2. [lcm] Qualcomm平台的显示屏lcd驱动移植步骤
  3. SpringInAction--Spring Web应用之SpringMvc 注解配置
  4. mysql保留2位小数字段如何设置 浮点数
  5. 监听Activity的生命周期的方式。
  6. rancher安装和使用
  7. Cent OS yum 安装 Adobe flash player
  8. 美的集团:已耗资4.86亿元回购847.4万股
  9. java: 程序包org.springframework.boot不存在
  10. Shell 的基础知识
  11. Highsoft.Highcharts 5.0.6439.38401 key
  12. paip.DISCUZ道具开发指南-attilax总结-
  13. Acwing:最长回文子串
  14. Microsoft Office Visio 2007和Microsoft Office Project 2007下载
  15. 欧拉筛素数的应用-漂亮数
  16. 生化危机4重生 java_生化危机-绝密报告4
  17. (2021总结篇)面向对象软件设计模式--(八)结构型模式---树形结构的处理--组合模式
  18. 数模转换器ADC0832使用原理及控制程序
  19. 计算机控制面板 关机时间,怎么设置电脑的自动关机时间
  20. 程序员健康指南阅读笔记

热门文章

  1. 计算机专业实习怎么找?大厂付费内推实习证明有用吗?
  2. 偶尔颓废也是一种必要
  3. 升级换代老工业基地产业结构 加快沿海经济发展后劲儿
  4. Java枚举和C枚举的转换——JNI笔记
  5. 《PS/AI教程》我是如何实现让学员在两个月内高效掌握AI/PS的?
  6. 电子邮件加密和数字签名服务解决方案
  7. mysql+mdl+解决办法_Mysql DDL出现长时间等待MDL问题分析
  8. 用java实现的资源管理器
  9. Linux-chpasswd 修改用户密码
  10. python 日本老人_84岁日本奶奶自学编程,成苹果“最高龄程序员”