基础概念:
JavaScript 中的二进制数据可以通过 ArrayBuffer
或 TypedArray
对象来表示。Base64 编码是一种将二进制数据转换为 ASCII 字符串的方法,以便于在不支持二进制传输的环境(如电子邮件)中传输。Base64 编码后的字符串由 A-Z、a-z、0-9、+、/ 和 =(填充字符)组成。
优势:
类型:
应用场景:
示例代码:
// 将二进制数据转换为 Base64 编码
function arrayBufferToBase64(buffer) {
let binary = '';
const bytes = new Uint8Array(buffer);
const len = bytes.byteLength;
for (let i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return btoa(binary);
}
// 将 Base64 编码转换为二进制数据
function base64ToArrayBuffer(base64) {
const binary_string = atob(base64);
const len = binary_string.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; i++) {
bytes[i] = binary_string.charCodeAt(i);
}
return bytes.buffer;
}
// 示例:读取图片文件并转换为 Base64 编码
const input = document.createElement('input');
input.type = 'file';
input.onchange = function(event) {
const file = event.target.files[0];
const reader = new FileReader();
reader.onload = function(e) {
const base64 = arrayBufferToBase64(e.target.result);
console.log('Base64 编码:', base64);
};
reader.readAsArrayBuffer(file);
};
document.body.appendChild(input);
遇到的问题及解决方法:
解决方法:
FileReader
API 读取文件并转换为 ArrayBuffer
。btoa
和 atob
函数进行 Base64 编码和解码。希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云