javascript对url进行编码和解码
这里总结下JavaScript对URL进行编码和解码的三个方法。
为什么要对URL进行编码和解码
只有【0-9[a-Z] $ - _ . + ! * ' ( ) ,】以及某些保留字,才能不经过编码直接用于URL,其他的字符如果不经过编码可能会导致各种各样的问题。
很容易找到编码和解码的例子,比如在搜索引擎搜索的中文关键字,复制网址之后再粘贴会发现该URL已经被转码。
escape()和unescape()
原理:对除ASCII字母、数字、标点符号【@ * _ + - . /】以外的其他字符进行编码。
编码:escape('http://www.baidu.com?name=yanggb@blog=yanggb')
结果:"http%3A//www.baidu.com%3Fname%3Dyanggb@blog%3Dyanggb"
编码:escape('杨冠标')
结果:"%u6768%u51A0%u6807"
解码:unescape('http%3A//www.baidu.com%3Fname%3Dyanggb@blog%3Dyanggb')
结果:"http://www.baidu.com?name=yanggb@blog=yanggb"
编码:unescape('%u6768%u51A0%u6807')
结果:"杨冠标"
encodeURI()和decodeURI()
encodeURI()是Javascript中真正用来对URL编码的函数。
原理:返回编码为有效的统一资源标识符 (URI) 的字符串,不会被编码的字符:【! @ # $ & * ( ) = : / ; ? + '】。
编码:encodeURI('http://www.baidu.com?name=杨冠标@blog=yanggb')
结果:"http://www.baidu.com?name=%E6%9D%A8%E5%86%A0%E6%A0%87@blog=yanggb"
解码:decodeURI('http://www.baidu.com?name=%E6%9D%A8%E5%86%A0%E6%A0%87@blog=yanggb')
结果:"http://www.baidu.com?name=杨冠标@blog=yanggb"
encodeURIComponent()和decodeURIComponent()
原理:对URL的组成部分进行个别编码,而不用于对整个URL进行编码该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
编码:encodeURIComponent('http://www.baidu.com?name=杨冠标@blog=yanggb')
结果:"http%3A%2F%2Fwww.baidu.com%3Fname%3D%E6%9D%A8%E5%86%A0%E6%A0%87%40blog%3Dyanggb"
解码:decodeURIComponent('http%3A%2F%2Fwww.baidu.com%3Fname%3D%E6%9D%A8%E5%86%A0%E6%A0%87%40blog%3Dyanggb')
结果:"http://www.baidu.com?name=杨冠标@blog=yanggb"
"我从前相信,这世上有一个温暖的人,只为我悲喜,为我阻挡这世间的锋利。"
最新文章
- css的三种样式
- JSP内置对象---response 响应
- MySql之安装配置
- window对象的screen详解
- .NET破解之分享给新注册的朋友
- JPA学习笔记
- Unity中的关节
- iframe属性參数
- UEP-时间
- SCADA系统
- 巩固java(五)----通过实例理解java多态
- shell 字符串提取数字
- 共享存储(ISCSI网络存储)
- java基础---->;多线程之ThreadLocal(七)
- 使用C++11 开发一个半同步半异步线程池
- 【BZOJ】2653: middle
- maven 中使用jstl 错误解决
- MEF——.NET中值得体验的精妙设计
- cssBase.css你应该有一个
- IOS 开发学习33 使用sqlite3
热门文章
- 【翻译】全球用尽IPv4的一点思考
- Hash Map 在java中的解释及示例
- Django总结目录
- kubeadm join 超时报错 error execution phase kubelet-start: error uploading crisocket: timed out waiting for the condition
- 深入比特币原理(三)——交易的输入(input)与输出(output)
- ssm三大框架整合基本配置
- CF1236B Alice and the List of Presents
- EasyUI整合SpringBoot,Spring Data对数据的分页操作
- Solr单机配置详解
- GeoTools介绍、环境安装、读取shp文件并显示