js实现base 64
Base64 编码与解码的实现
在 JavaScript 中,可以通过内置的 btoa() 和 atob() 函数实现 Base64 的编码与解码。btoa() 用于将字符串编码为 Base64,atob() 用于将 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!"
处理 Unicode 字符
btoa() 和 atob() 仅支持 ASCII 字符。如果字符串包含 Unicode 字符(如中文、表情符号等),需先进行转义处理:
// 编码 Unicode 字符串
function encodeUnicode(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => {
return String.fromCharCode('0x' + p1);
}));
}
// 解码 Unicode 字符串
function decodeUnicode(str) {
return decodeURIComponent(atob(str).split('').map(c => {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
}
const unicodeString = '你好,世界!';
const encodedUnicode = encodeUnicode(unicodeString);
console.log(encodedUnicode); // 输出编码后的 Base64 字符串
const decodedUnicode = decodeUnicode(encodedUnicode);
console.log(decodedUnicode); // 输出 "你好,世界!"
Node.js 环境中的实现
在 Node.js 中,可以使用 Buffer 实现 Base64 编码与解码:

// 编码为 Base64
const originalData = 'Hello, Node.js!';
const encodedData = Buffer.from(originalData).toString('base64');
console.log(encodedData); // 输出 "SGVsbG8sIE5vZGUuanMh"
// 解码 Base64
const decodedData = Buffer.from(encodedData, 'base64').toString();
console.log(decodedData); // 输出 "Hello, Node.js!"
二进制数据的 Base64 处理
若需处理二进制数据(如文件),可通过 FileReader(浏览器)或 Buffer(Node.js)实现:
浏览器环境:
// 读取文件并编码为 Base64
const fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', (e) => {
const file = e.target.files[0];
const reader = new FileReader();
reader.onload = (event) => {
const base64String = event.target.result.split(',')[1];
console.log(base64String); // 输出文件的 Base64 编码
};
reader.readAsDataURL(file);
});
Node.js 环境:
const fs = require('fs');
const fileData = fs.readFileSync('example.jpg');
const base64Data = fileData.toString('base64');
console.log(base64Data); // 输出文件的 Base64 编码
以上方法覆盖了常见场景下的 Base64 编码与解码需求,包括字符串、Unicode 字符及二进制数据的处理。






