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字母.数字.标点符号(@ * _ + - . /) 以外的字符进行编码 .编码的字符被替换成了十六进制的转义序列 不编码的字 ...
随机推荐
- 2019-11-7:练习上传getshell,通过菜刀连接
一.使用phtstudy搭建环境 1,将emlog源码解压到phpstudy的www目录,复制emlog源码中的src所有文件到需要搭建emlog的目录中,修改emlog配置文件,输入好本机mysql ...
- (四十五)golang--反射
反射基本介绍: (1)反射可以在运行时动态获取变量的各种信息,比如变量的类型.类别: (2)如果是结构体变量,还可以获取结构体本身的信息(包括结构体字段.方法): (3)通过反射,可以修改变量的值,可 ...
- win10 下安装zookeeper+Kafka 的详细步骤(2)
Win10 下要使用Kafka需要经过以下三个步骤: 1.安装JDK(需要安装依赖java JDK) 2.安装zookeeper(资源协调,分配管理) 3.使用Kafka开发 ============ ...
- Winows下安装RabbitMQ
RabbitMQ的简介 RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源 ...
- Spring 框架基础(05):事务管理机制,和实现方式
本文源码:GitHub·点这里 || GitEE·点这里 一.Spring事务管理 1.基础描述 Spring事务管理的本质就是封装了数据库对事务支持的操作,使用JDBC的事务管理机制,就是利用jav ...
- 原生js删除增加修改class属性
其实html5已经扩展了class操作的相关API,其中classList属性就以及实现了class的增删和判断. HTML DOM classList 属性 classList属性的方法有: add ...
- Block-wise 2D kernel PCA/LDA for face recognition-笔记
In the present work, we propose a framework for kernel-based 2D feature extraction algorithms tailor ...
- shell配置mysql主从
Environment:CentOS7两台主机 一台做主机,一台做备份机 注意: 首先第一步关闭两台机器的防火墙 主机shell操作: #!/bin/bash slave_user='zjt' sla ...
- 使用Jq实现弹出层
对于前端程序员来说,弹出层是经常用到的,下面我叫大家如何用实现JQuery实现弹出层的效果,代码如下: CSS:弹出层的效果 .mask { position: absolute; top: 0px; ...
- shell 读取文件第几列
读取文件的第2列和第4列: cat filename.txt | awk '{ print $2 $4 }' 求文件file1.txt的第二列 和 file2.txt(单列文件)的交集: cat fi ...