js实现base 64
Base64 编码与解码的实现
在 JavaScript 中,Base64 编码和解码可以通过内置的 btoa() 和 atob() 函数实现。这两个函数分别用于将字符串编码为 Base64 和将 Base64 字符串解码为原始字符串。
编码字符串为 Base64
使用 btoa() 函数可以将一个字符串编码为 Base64 格式:

const originalString = 'Hello, World!';
const encodedString = btoa(originalString);
console.log(encodedString); // 输出: "SGVsbG8sIFdvcmxkIQ=="
解码 Base64 字符串
使用 atob() 函数可以将 Base64 字符串解码为原始字符串:
const encodedString = 'SGVsbG8sIFdvcmxkIQ==';
const decodedString = atob(encodedString);
console.log(decodedString); // 输出: "Hello, World!"
处理非 ASCII 字符
btoa() 和 atob() 仅支持 ASCII 字符。如果字符串包含非 ASCII 字符(如中文、表情符号等),需要先进行转义处理:

const unicodeString = '你好,世界!';
const encodedString = btoa(encodeURIComponent(unicodeString));
console.log(encodedString); // 输出编码后的 Base64 字符串
const decodedString = decodeURIComponent(atob(encodedString));
console.log(decodedString); // 输出: "你好,世界!"
使用 Buffer(Node.js 环境)
在 Node.js 环境中,可以使用 Buffer 实现 Base64 编码和解码:
const originalString = 'Hello, World!';
const encodedString = Buffer.from(originalString).toString('base64');
console.log(encodedString); // 输出: "SGVsbG8sIFdvcmxkIQ=="
const decodedString = Buffer.from(encodedString, 'base64').toString();
console.log(decodedString); // 输出: "Hello, World!"
处理二进制数据
对于二进制数据(如文件),可以将其转换为 Base64:
// 假设有一个 ArrayBuffer 或 Uint8Array
const binaryData = new Uint8Array([72, 101, 108, 108, 111]);
const encodedString = btoa(String.fromCharCode.apply(null, binaryData));
console.log(encodedString); // 输出: "SGVsbG8="
注意事项
btoa()和atob()是浏览器内置函数,不适用于 Node.js。- 在 Node.js 中,优先使用
Buffer进行 Base64 操作。 - 对于非 ASCII 字符,务必使用
encodeURIComponent和decodeURIComponent处理。






