如何在JavaScript中使用Base64编码和解码字符串
将字符串转换为Base64格式,以及从Base64格式解码字符串,是一种简单的操作,有时可能会派上用场。幸运的是,现代JavaScript提供了一些易于使用的全局辅助函数来实现这个目的。
使用Base64编码字符串
btoa()
方法可以从一个字符串对象中创建一个Base64编码的字符串,其中字符串中的每个字符都被视为二进制数据的一个字节。
const stringToEncode = 'foobar';
const encodedString = btoa(stringToEncode); // 'Zm9vYmFy'
解码Base64编码的字符串
相反,atob()
方法可以解码使用Base64编码的数据字符串。
const stringToDecode = 'Zm9vYmFy';
const decodedString = atob(stringToDecode); // 'foobar'
兼容性和旧版 Node.js
幸运的是,btoa()
和 atob()
在所有现代浏览器和 Node.js 16.0.0 版本以后都得到支持。
然而,如果你需要支持旧版的 Node.js,你需要使用 Buffer
类来定义自己的 btoa()
和 atob()
函数。
const btoa = str => Buffer.from(str, 'binary').toString('base64');
const atob = str => Buffer.from(str, 'base64').toString('binary');
const stringToEncode = 'foobar';
const encodedString = btoa(stringToEncode); // 'Zm9vYmFy'
const stringToDecode = 'Zm9vYmFy';
const decodedString = atob(stringToDecode); // 'foobar'