window.btoa(str)
用于编码形成 base-64 编码的字符串。
window.atob(str)
用于解码使用 base-64 编码的字符串(base64图片下载时候通常需要先解码,然后将解码内容转化为二进制数据下载)。
window.encodeURIComponent(str)
用于url的组成部分编码,不能用于整个url编码。把字符串作为 URI 组件进行编码。该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。假定任何保留字符都代表普通文本,所以必须编码它们。
window.decodeURIComponent(str)
对 encodeURIComponent() 函数编码的 URI 进行解码。
window.encodeURI(str)
专门用于uri编码中文处理,对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的: , / ? : @ & = + $ # (可以使用encodeURIComponent() 方法分别对特殊含义的 ASCII 标点符号进行编码)。假定URI 中的任何保留字符都有特殊意义,所有不会编码它们。
window.decodeURI(str)
对 encodeURI() 函数编码过的 URI 进行解码。
window.escape(str)
返回一个可在所有计算机上读取的编码 String 对象(使字符串具有可移植性,这样它就可以通过任何网络传输到任何支持 ASCII 字符的计算机)。不能用来对“统一资源标识符”(URI) 进行编码。对以下字符不会进行编码: * @ - _ + . /。
window.unescape(str)
对 unescape()函数编码过的 字符串进行解码。
区别
escape() will not encode: @*/+
encodeURI() will not encode: ~!@#$&*()=:/,;?+'
encodeURIComponent() will not encode: ~!*()'