📅  最后修改于: 2023-12-03 15:25:13.130000             🧑  作者: Mango
在进行网络传输数据时,为了方便和安全,我们一般会将数据进行编码,其中最常用的编码方式之一就是 base64。
但是在实际应用中我们通常需要将 base64 编码的数据转换为二进制数据或者字节数据,以便进行进一步的处理,这个时候我们就需要将 base64 编码的数据转换为 uint8array。
在 JavaScript 中,我们可以通过以下代码实现将 base64 编码的数据转换为 uint8array:
function base64ToUint8array(base64) {
const binaryString = window.atob(base64);
const len = binaryString.length;
const bytes = new Uint8Array(len);
for (let i = 0; i < len; ++i) {
bytes[i] = binaryString.charCodeAt(i);
}
return bytes;
}
以上函数中:
window.atob()
方法可以将 base64 编码的字符串解码为二进制数据。new Uint8Array()
方法可以创建一个固定长度的二进制数据容器。在创建时需要指定容器的长度。charCodeAt()
方法可以得到某个字符的 Unicode 编码。以上函数可以将 base64 编码的字符串快速转换成 uint8array。
const base64Str = 'SGVsbG8gV29ybGQhCg==';
// 将 base64 编码的数据转换为 uint8array
const uint8array = base64ToUint8array(base64Str);
console.log(uint8array); // Uint8Array(16) [72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 13, 10, 13, 10]
在以上示例中,我们首先定义了一个 base64 编码的字符串,然后通过 base64ToUint8array()
函数将其转换为 uint8array。
通过以上介绍,我们可以得出以下结论:
window.atob()
方法和 new Uint8Array()
方法实现。charCodeAt()
方法将字符转换为 ASCII 码。