js 对url进行编码和解码的三种方式

一、escape 和 unescape

escape

原理:对除 ASCII字母、数字、标点符号(@ * _ + - . /) 以外的字符进行编码 。编码的字符被替换成了十六进制的转义序列

          不编码的字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z

注意:此方法已过时,不推荐使用该函数,尤其是不能用来对URL进行编码

示例:escape("http://www.baidu.com?name=zhang@xiao@jie&order=1")    编码后的结果是:"http%3A//www.baidu.com%3Fname%3Dzhang@xiao@jie%26order%3D1"

unescape

原理:对escape()编码的字符串进行解码。通过找到%xx或者%uxxx的字符序列(x表示十六进制的数字),用Unicode字符u00xx 和 uxxxx 替换这样的字符序列进行解码

二、encodeURL 和 decodeURL

原理:返回编码为有效的统一资源标识符(URL)的字符串,不会被编码的字符:! @ # $ * ( )  =  : / ; ? + '

原文地址:https://www.cnblogs.com/xiaxiaomo/p/9329705.html