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

*** 只有 0-9[a-Z] $ - _ . + ! * ‘ ( ) , 以及某些保留字,才能不经过编码直接用于 URL。
***例如:搜索的中文关键字,复制网址之后再粘贴就会发现该URL已经被转码。
1)escape 和 unescape
原理:对除ASCII字母、数字、标点符号 @ * _ + - . / 以外的其他字符进行编码。
编码:
eg:escape(‘http://[email protected]@jie&order=你好‘)
res:"http%3A//www.baidu.com%3Fname%[email protected]@jie%26order%3D%u4F60%u597D"
解码:
eg:unescape("http%3A//www.baidu.com%3Fname%[email protected]@jie%26order%3D%u4F60%u597D")
res:"http://[email protected]@jie&order=你好"
2)encodeURI 和 decodeURI
原理:返回编码为有效的统一资源标识符 (URI) 的字符串,不会被编码的字符:! @ # $ & * ( ) = : / ; ? + ‘
   encodeURI()是Javascript中真正用来对URL编码的函数。
编码:
eg:encodeURI(‘http://[email protected]@jie&order=你好‘)
    res:"http://[email protected]@jie&order=%E4%BD%A0%E5%A5%BD"
解码:
eg:decodeURI("http://[email protected]@jie&order=%E4%BD%A0%E5%A5%BD")
    res:"http://[email protected]@jie&order=你好"
3)encodeURIComponent 和 decodeURIComponent
原理:对URL的组成部分进行个别编码,而不用于对整个URL进行编码
编码:
eg:encodeURIComponent(‘http://[email protected]@jie&order=1‘)
   res:"http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1"
解码:
eg:decodeURIComponent("http%3A%2F%2Fwww.baidu.com%3Fname%3Dzhang%40xiao%40jie%26order%3D1")
   res:"http://[email protected]@jie&order=1"

参考(https://www.cnblogs.com/z-one/p/6542955.html)

原文地址:https://www.cnblogs.com/wangyunhui/p/10756038.html

时间: 2024-08-14 00:57:40

js对url进行编码和解码(三种方式区别)的相关文章

hive三种方式区别和搭建、HiveServer2环境搭建、HWI环境搭建和beeline环境搭建

说在前面的话 以下三种情况,最好是在3台集群里做,比如,master.slave1.slave2的master和slave1都安装了hive,将master作为服务端,将slave1作为服务端. hive三种方式区别和搭建 Hive中metastore(元数据存储)的三种方式: a)内嵌Derby方式 b)Local方式 c)Remote方式 1.本地derby这种方式是最简单的存储方式,只需要在hive-site.xml做如下配置便可<?xml version="1.0"?&g

js中将字符串转换成json的三种方式

1,eval方式解析,恐怕这是最早的解析方式了.如下: function strToJson(str){ var json = eval('(' + str + ')'); return json; } 记得别忘了str两旁的小括号. 2,new Function形式,比较怪异哦.如下 function strToJson(str){ var json = (new Function("return " + str))(); return json; } 3,使用全局的JSON对象,如

JS创建对象,数组,函数的三种方式

害怕自己忘记,简单总结一下 创建对象的3种方法 ①:创建一个空对象   var obj = {}; ②:对象字面量 var obj = { name: "Tom", age: 27 } ③:构造函数 (不推荐) var obj = new Object(); 创建数组的3种方法 ①:创建一个空数组 var arr = []; ②:隐式创建 var arr = [1,2,3]; ③:构造函数(不推荐) var arr = new Array(3);  (固定数组长度) arr[0] =

java 复用类的三种方式区别 组合,继承,代理的区别

1. 组合 : 只需在新类中产生现有类的对象 .(is - a 有一个) 新类是由现有类的对象组成. (引用初始化与作用域?) 2. 继承 : 按照现有类的类型来创造新类. (has - a 有一个)无需改变现有类的形式,采用现有类的形式并在其中添加新代码.3. 代理 : 我们将一个成员对象置于所要构造的类中(就像组合),但与此同时我们在新类中暴露了该成员对象的所有方法(就像继承)

javascript对url进行编码和解码

这里总结下JavaScript对URL进行编码和解码的三个方法. 为什么要对URL进行编码和解码 只有[0-9[a-Z] $ - _ . + ! * ' ( ) ,]以及某些保留字,才能不经过编码直接用于URL,其他的字符如果不经过编码可能会导致各种各样的问题. 很容易找到编码和解码的例子,比如在搜索引擎搜索的中文关键字,复制网址之后再粘贴会发现该URL已经被转码. escape()和unescape() 原理:对除ASCII字母.数字.标点符号[@  *  _  +  -  .  /]以外的其

java中URL 的编码和解码函数

java中URL 的编码和解码函数java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在javascript 中URL 的编码和解码函数escape(String s)和unescape(String s) ; 在前台:var url="test.jsp?param="+escape('this%is#te=st&o k?+/');在后台: String param=request.

vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、一级mockjs用法、路由懒加载三种方式

不多说上代码: <template> <div class="hello"> <h1>{{ msg }}</h1> <p>Element UI简单Cascader级联选择器使用</p> <el-cascader :options='options' v-model="selectedOptions" @change="handleChange"> </el-

JAVA实现Base64编码的三种方式

摘要: Javabase64编码的三种方式   有如下三种方式: 方式一:commons-codec.jar Java代码  1. String base64String="whuang123"; 2. byte[] result = Base64. Javabase64编码的三种方式 有如下三种方式: 方式一:commons-codec.jar Java代码 1. String base64String="whuang123"; 2. byte[] result

三种方式解决你的js加载乱码

第一种方式——编码统一 我们以前觉得出现乱码的原因是因为编码不统一,就是因为我们设置编码统一之后,就解决了问题,所以,让html和js的编码统一,是最简单的一个乱码解决方式,原因是什么,是因为,如果你在加载js的时候,并没有声明js的编码格式,那么浏览器会默认的按照当前html的编码格式进行解析引入的js文件,如果你的js和本身页面编码不一样,并且js中引入了中文字符,那么肯定会出现乱码的.要知道,程序都是笨笨的. 第二种方式——在引入js的标签中加入charset属性 这样引入,那么这个xx.