【Javascript】btoa函数和atob函数
Base64 是一种常见的二进制到文本的编码方式,它将原本不可打印的二进制数据转化为仅包含64个可打印字符(字母、数字和符号)组成的字符串,便于在网络传输、存储或作为URL参数等场景中安全、高效地表示和传递二进制数据。
btoa()
和 atob()
是 JavaScript
中内置的两个方法,它们属于全局 window
对象的方法,主要用于对数据进行 Base64
编码和解码。
btoa()
函数
btoa 是 “Binary To ASCII” 的缩写,用于将Binary
的数据用Ascii
码表示,即Base64
的编码过程。
语法:
// 内容为ascii标准内容时
window.btoa(input)
// 内容为非ascii标准内容时
btoa(encodeURIComponent(input))
参数:
input
:等待编码的字符串- 被编码的内容不支持汉字,如果编码内容是汉字需要先使用
encodeURIComponent()
进行编码处理。
返回值:
- 返回一个 Base64 编码后的字符串。
atob()
函数
btoa 是 “ASCII To Binary” 的缩写,用于将Ascii
码解析成Binary
,即Base64
的解码过程。
语法:
// 内容为ascii标准内容时
window.atob(encodedData)
// 内容为非ascii标准内容时
decodeURIComponent(atob(encodedData));
参数:
encodedData
: Base64 编码的字符串。- 被解码的内容不支持汉字,如果解码内容是汉字,需要使用
decodeURIComponent()
进行解码处理。
返回值:
- 返回一个解码后的字符串。
兼容性
btoa()
和 atob()
函数在现代浏览器中广泛支持,包括 Chrome、Firefox、Safari、Edge 等。然而,在较早版本的 Internet Explorer(如 IE9 及以下)中,这些函数可能不被支持。对于需要兼容旧版IE的项目,可以考虑使用第三方库(如 base64-js
、js-base64
等)来提供Base64编解码功能。