正常的编码解码(非加密)

escape/uescape

主要就是把中文汉字进行编码的(一般只有js语言支持,也经常应用于前端页面通讯时间的中文汉字编码)

encodeURL/decodeURL

基本上所有的编码语言都支持

encodeURlComponent/decodeURIComponent

和第二种方法非常的累死,区别在于

需求:我们url问号传递参数的时候,我们传递的参数值还是一个url或者包含很多特殊字符,此时为了不影响住要的url,我们需要把传递的参数值进行编码,使用encodeURLComponent处理

1
2
3
4
5
6
7
8
9
10
11
12
13
let str = 'http://www.baidu.com/?',
obj={
name:'wjw',
age:9,
url:'http://www.sogou.com/?x=1'
}
// => 把obj中的每一项属性名和属性值拼接到url的末尾(问号传参的方式)

for(let key in obj){
str +=`${key}=${obj[key]}`;
// => 不能使用encodeURL必须使用encodeURlComponent,原因是encodeURL不能编码
}
console.log(str.replace(/&$/g,''));

也可以通过加密的方法进行编码解码

1、可逆转加密(一般都是团队自己玩的规则)
2、不可逆加密(一般都是基于MD5加密完成的,可能会把md5加密后的结果二次加密)

1
2
3
4
5
<script src='js/md5.min.js'></script>
<script>
hex_md5('0000')
// "c6f057b86584942e415435ffb1fa93d4"
</script>