📌  相关文章
📜  将base64字符串转换为字节数组javascript(1)

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

将base64字符串转换为字节数组的方法(Javascript)

在Javascript中,将base64字符串转换为字节数组的方法非常简单。本文将会介绍如何使用内置的函数将base64字符串转换为字节数组,并附带一个示例代码。

使用atob函数

在Javascript中,使用atob函数可以将base64字符串解码为普通字符串。但是这个函数只能解码ASCII字符集的字符串,如果在字符串中包含了非ASCII字符,则会抛出异常。

为了能够将base64字符串转换为字节数组,我们需要创建一个ASCII字符集的字符串,并使用atob函数将其解码为一个二进制数据。下面是一个示例代码:

function base64ToArrayBuffer(base64) {
  const binaryString = 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.buffer;
}

该函数接受一个base64字符串作为输入,并返回一个ArrayBuffer对象。

我们首先使用atob函数将base64字符串解码为二进制数据。然后,我们使用Uint8Array类型创建了一个长度与二进制数据相等的数组。接下来,我们使用循环将每个字节存储到新创建的数组中。最后,我们使用buffer属性从数组中获取ArrayBuffer对象并将其返回。

示例

以下是一个简单的示例程序,该程序将base64字符串转换为字节数组,并将结果输出到控制台。

const base64String = 'SGVsbG8gV29ybGQ=';
const buffer = base64ToArrayBuffer(base64String);
console.log(new Uint8Array(buffer));

输出结果如下:

Uint8Array(11) [ 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100 ]
总结

在Javascript中,使用atob函数可以将base64字符串解码为二进制数据。但是该函数只能解码ASCII字符集的字符串。为了能够将base64字符串转换为字节数组,我们需要使用Uint8Array类型创建一个数组,并使用循环将每个字节存储到数组中。最后,我们使用buffer属性从数组中获取ArrayBuffer对象。