📜  将 base64 转换为 uint8array javascript (1)

📅  最后修改于: 2023-12-03 15:25:13.130000             🧑  作者: Mango

将 base64 转换为 uint8array

在进行网络传输数据时,为了方便和安全,我们一般会将数据进行编码,其中最常用的编码方式之一就是 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;
}

以上函数中:

  1. window.atob() 方法可以将 base64 编码的字符串解码为二进制数据。
  2. 由于解码后的数据是以字符串的形式存在的,为了方便进一步的处理,我们需要将字符串转换为 uint8array。
  3. new Uint8Array() 方法可以创建一个固定长度的二进制数据容器。在创建时需要指定容器的长度。
  4. 使用 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。

总结

通过以上介绍,我们可以得出以下结论:

  1. 将 base64 编码的数据转换为 uint8array 可以通过 JavaScript 中的 window.atob() 方法和 new Uint8Array() 方法实现。
  2. 转换过程中需要注意字符编码的问题,需要使用 charCodeAt() 方法将字符转换为 ASCII 码。
  3. base64 编码的数据转换为 uint8array 可以让我们方便地进行二进制数据或者字节数据的处理。