在 JavaScript 中可以使用以下方法来进行字符串与 Base64 编码的互相转换,并支持 Unicode 编码:
将字符串转为 Base64 编码:
function stringToBase64(str) {
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {
return String.fromCharCode('0x' + p1);
}));
}
将 Base64 编码转为字符串:
function base64ToString(str) {
return decodeURIComponent(atob(str).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
}
使用示例:
let str = 'Hello, 世界';
let base64 = stringToBase64(str);
console.log(base64); // "SGVsbG8sIOS4lueVjA=="
let str2 = base64ToString(base64);
console.log(str2); // "Hello, 世界"
注意:上面的代码使用了 JavaScript 内置的 btoa()
和 atob()
函数来进行 Base64 编码和解码。这两个函数在所有支持 JavaScript 的浏览器中都可以使用,但是在 Node.js 环境中不可用。如果需要在 Node.js 中使用,可以使用第三方库,例如 buffer
库。