Skip to content

如何在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'