在JavaScript中使用Base64编码(常被误解为“加密”,实际上它是一种编码方式,并非加密)通常是通过内置的btoa
和atob
函数来实现的。
基础概念:
btoa
函数用于将字符串或二进制值转换为一个Base64编码的字符串。atob
函数则用于将一个Base64编码的字符串解码为原始字符串。优势:
应用场景:
示例代码:
// 编码
let str = "Hello, World!";
let encodedStr = btoa(str);
console.log(encodedStr); // SGVsbG8sIFdvcmxkIQ==
// 解码
let decodedStr = atob(encodedStr);
console.log(decodedStr); // Hello, World!
注意事项:
常见问题及解决方法:
示例代码:
function utf8ToBase64(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
function toSolidBytes(match, p1) {
return String.fromCharCode('0x' + p1);
}));
}
function base64ToUtf8(str) {
return decodeURIComponent(atob(str).split('').map(function(c) {
return '%' + c.charCodeAt(0).toString(16).padStart(2, '0');
}).join(''));
}
let chineseStr = "你好,世界!";
let encodedChineseStr = utf8ToBase64(chineseStr);
console.log(encodedChineseStr); // 5L2g5aW977yM5LiW55WM77yB
let decodedChineseStr = base64ToUtf8(encodedChineseStr);
console.log(decodedChineseStr); // 你好,世界!
btoa
和atob
函数,但在一些旧版本的浏览器或非浏览器环境(如Node.js)中可能不支持。这时可以使用第三方库(如base-64
)来实现Base64编码和解码。没有搜到相关的沙龙