*** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL。

***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码。

1、escape 和 unescape

原理:对除ASCII字母、数字、标点符号 @  *  _  +  -  .  / 以外的其他字符进行编码。

编码:escape('http://www.baidu.com?name=zhang@xiao@jie&order=1')

结果:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"

escape('张')

结果:"%u5F20"

解码:unescape("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

结果:"http://www.baidu.com?name=zhang@xiao@jie&order=1"

unescape("%u5F20")

结果:"张"

2、encodeURI 和 decodeURI

原理:返回编码为有效的统一资源标识符 (URI) 的字符串,不会被编码的字符:! @ # $ & * ( ) = : / ; ? + '

encodeURI()是Javascript中真正用来对URL编码的函数。

编码:encodeURI('http://www.baidu.com?name=zhang@xiao@jie&order=1')

结果:"http://www.baidu.com?name=zhang@xiao@jie&order=1"

解码:decodeURI("http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1")

结果:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"

3、encodeURIComponent 和 decodeURIComponent

原理:对URL的组成部分进行个别编码,而不用于对整个URL进行编码

编码:encodeURIComponent('http://www.baidu.com?name=zhang@xiao@jie&order=1')

结果:"http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1"

解码:decodeURIComponent("http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1")

"http://www.baidu.com?name=zhang@xiao@jie&order=1"

js uri解码_js对url进行编码和解码(三种方式区别)(转)相关推荐

  1. JS基础-Java Class类以及获取Class实例的三种方式

    JS基础-Java Class类以及获取Class实例的三种方式 由于JVM为每个加载的class创建了对应的Class实例,并在实例中保存了该class的所有信息,包括类名.包名.父类.实现的接口. ...

  2. linux url解码,js对url进行编码和解码(三种方式区别)

    *** 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL. ***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码 ...

  3. JS对url进行编码和解码(三种方式区别)

    Javascript语言用于编码的函数,一共有三个,最古老的一个就是escape().虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起. escape 和 ...

  4. URL 的编码和解码

    URL 的编码和解码 1 什么是 URL? URL(Uniform Resource Locator):统一资源定位符,它是用来表示互联网上的某个资源地址,互联网上的每个文件都有一个唯一的 URL,它 ...

  5. go url 参数编码和解码

    为什么80%的码农都做不了架构师?>>>    1 在做支付的时候会涉及到 url参数编码和解码,然后转换成自己想要的格式 app_id=2016073100129537&b ...

  6. url在线编码和解码

    在工作中,经常遇到encode之后的url.想查看里面的某个参数的时候,很不直观.今天在网上搜了一下对url在线编码和解码的网站.对我来说,使用起来很方便.而且这个网站里面,不仅仅有对url的编码和解 ...

  7. python url解码_对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, saf ...

  8. response设置编码的三种方式以及比较

    https://blog.csdn.net/u010653908/article/details/53994021 response设置编码的三种方式以及比较 2017年01月03日 14:12:46 ...

  9. java base64编码的三种方式

    Java 中如何使用base64编码呢? 有如下三种方式: 方式一:commons-codec.jar Java代码   String base64String = "whuang123&q ...

最新文章

  1. java应用窗口大小_java 如何让程序窗口随屏幕大小改变 | 学步园
  2. RegExp 正则
  3. 渗透测试辅助工具--在线版
  4. 部署 JSP 工程文件
  5. 将k8s制作成3D射击游戏,好玩到停不下来,附源码
  6. LeetCode之Longest Common Prefix
  7. kotlin 小数位数_Kotlin程序生成4位数OTP
  8. mysql8.0驱动包下载_Java JDBC 驱动包下载,MySQL 8及以上适用, mysql-connector-java-8.0.22.jar 官方版。...
  9. meterpreter下抓取windows系统明文密码实验
  10. 安装mysql数据库出现问题_安装mysql数据库及问题解决方法
  11. 华为服务器查看虚拟ip,裸金属服务器管理虚拟IP地址
  12. 查mysql版本的命令
  13. (字节流与字符流)InputStream字节输入流
  14. 完爆阿尔法狗元,DeepMind用5000台TPU训练出新算法,1天内称霸3种棋类
  15. DophinScheduler server部分 核心代码详细解析——掌控任务和进程的呼吸与脉搏:log、monitor与registry
  16. 删除buddypress相关功能
  17. java语言基于springboot+vue+elementUI 4S店车辆管理系统-#计算机毕业设计
  18. ERROR: cannot launch node of type [joint_state_publisher_gui/joint_state_publisher_gui]
  19. 星尘斗士 (stars)
  20. 软铁氧体磁芯的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. nc扫描端口-curl-手动查杀木马过程之生成木马程序病原体并自动运行
  2. 在Linux命令行发送电子邮件附件的两种方法
  3. Zabbix 使用微信接收报警信息
  4. Win10进不去系统怎么办? 不重装就能修复系统必备技能
  5. totalspider爬虫批量重启报错Connection Error
  6. 【数据分析】脑图简介数据处理
  7. Appium遇到异常处理
  8. 解决Visual Studio 2015启动慢的问题
  9. Spring boot 解决 hibernate no session异常
  10. 【转】【异常处理】Incorrect string value: ‘\xF0\x90\x8D\x83...‘ for column... Emoji表情字符过滤的Java实现