参考:Web前端编码汇总:escape, encodeURI, encodeURIComponent
高级程序三—5.7单体内置对象

escape 、 encodeURL 、encodeURIComponent、base64、md5等等

escape(废弃)

已经被ECMA-262第三版废弃掉,只能编码ASCII字符

encodeURL 、encodeURIComponent(建议)

可以编码所有Unicode字符。
有效的URL中不能包含某些字符,比如空格。www.baidu.com/abc def#abc, 浏览器可能不会理解。
现代浏览器则会自动对URL进行编码
image.png
encodeURL和encodeURLComponet 都可以对URL进行编码,用特殊的UTF-8编码替换所有无效的字符。
encodeURL 不会对本身属于URL的特殊字符进行编码,比如:/ & # ?, 用于对整个url进行编码
encodeURLComponet 则会对所有非标准字符进行编码。故只能对URL 某一部分进行编码,比如对查询字符串进行编码

虽然decodeURI不能解码encodeURIComponent编码的字符,但是decodeURIComponent可以解码encodeURI编码的字符