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"
"我从前相信,这世上有一个温暖的人,只为我悲喜,为我阻挡这世间的锋利。"
javascript对url进行编码和解码的更多相关文章
- java中URL 的编码和解码函数
java中URL 的编码和解码函数java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在javascri ...
- URL的编码和解码
URL的编码和解码 参考:阮一峰--关于URL编码 1 为什么要URL编码 在因特网上传送URL,只能采用ASCII字符集 也就是说URL只能使用英文字母.阿拉伯数字和某些标点符号,不能使用其他文字和 ...
- url在线编码和解码
在工作中,经常遇到encode之后的url.想查看里面的某个参数的时候,很不直观.今天在网上搜了一下对url在线编码和解码的网站.对我来说,使用起来很方便.而且这个网站里面,不仅仅有对url的编码和解 ...
- .NET Core中如何对Url进行编码和解码
我们在.NET Core项目中,可以用WebUtility类对Url进行编码和解码,首先我们要确保项目中引入了nuget包:System.Runtime.Extensions 当然这个nuget包默认 ...
- 在线url网址编码、解码
>>在线url网址编码.解码<<
- JS对url进行编码和解码(三种方式区别)
Javascript语言用于编码的函数,一共有三个,最古老的一个就是escape().虽然这个函数现在已经不提倡使用了,但是由于历史原因,很多地方还在使用它,所以有必要先从它讲起. escape 和 ...
- js对url进行编码和解码
编码 只有 0-9[a-Z] $ - _ . + ! * ' ( ) , 以及某些保留字,才能不经过编码直接用于 URL. 例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码. 1. ...
- URL地址编码和解码
0. 参考 [整理]关于http(GET或POST)请求中的url地址的编码(encode)和解码(decode) python3中的urlopen对于中文url是如何处理的? 中文URL的编码问题 ...
- js 对url进行编码和解码的三种方式
一.escape 和 unescape escape 原理:对除 ASCII字母.数字.标点符号(@ * _ + - . /) 以外的字符进行编码 .编码的字符被替换成了十六进制的转义序列 不编码的字 ...
随机推荐
- 使用node.js开发一个生成逐帧动画小工具
在实际工作中我们已经下下来不下于一万个npm包了,像我们熟悉的 vue-cli,react-native-cli 等,只需要输入简单的命令 vue init webpack project,即可快速帮 ...
- iOS开发tips-PhotoKit
概述 PhotoKit应该是iOS 8 开始引入为了替代之前ALAssetsLibrary的相册资源访问的标准库,后者在iOS 9开始被弃用.当然相对于ALAssetsLibrary其扩展性更高,ap ...
- 使用vuecli3发布npm包
一.使用vuecli3创建项目 vue create svgicon 二.修改目录,开发组件前的准备 把src目录改为examples作为查看组件的演示目录,新建packages目录作为组件编写的目录 ...
- linux+docker+nginx如何配置环境并配置域名访问
一.环境准备 1)下载php环境包,下载地址为:https://www.php.net/downloads.php 2)安装docker,这个主要的作用就是用来安装mysql.你也可以不需要安装这个东 ...
- mysql 插入string类型变量时候,需要注意的问题,妈的,害我想了好几个小时!!
很多人在用php+MySQL做网站往数据库插入数据时发现如下错误: 注册失败!Unknown column '1a' in 'field list' 结果发现用数字提交是没有问题的,其他如char型就 ...
- 阿里云安装mysql
1. ##数据库字符集SHOW VARIABLES LIKE 'character_set_%'; ##数据库校对股则SHOW VARIABLES LIKE 'collation_%'; 2.创建数据 ...
- 一文读懂Python web框架和web服务器之间的关系
我们都知道 Python 作为一门强大的语言,能够适应快速原型和较大项目的制作,因此被广泛用于 web 应用程序的开发中. 在面试的过程中,大家或多或少都被问到过这样一个问题:一个请求从浏览器发出到数 ...
- postgresql,postgis,geoserver 发布地图服务,并用.net mvc openlayers3进行显示
1.所需工具 postgres版本 9.6.1 对应的postgis geoserver 2.8.2 openlayers3 2.将postgres postgis ,geosever安装好,再用如下 ...
- SpringBoot添加热部署
一.导入依赖 <!--热部署--> <dependency> <groupId>org.springframework.boot</groupId> & ...
- 《手把手教你》系列进阶篇之3-python+ selenium自动化测试 - python几种骚操作你都知道吗?(详细教程)
1. 简介 这篇文章主要是给小伙伴或者童鞋们介绍和分享 python几种骚操:读取配置文件.获取根目录的相对路径.获取系统时间和格式化时间显示.字符串切割等等操作.为后边的自动化框架打下一个结实的基础 ...