我正在尝试使用JavaScript将base64编码的字符串“ CDA=”转换为二进制缓冲区。我尝试调用函数atob,但结果始终是一个空数组。

我已经尝试过使用字符串使用atob编码的btoa,并且atob提供了预期的结果。因此,它似乎并不总是会失败,而是可能仅在base64字符串表示二进制数据时才会失败。从互联网上,我看到二进制数据也应该被管理...有人对此行为有解释吗?

最佳答案

atob()返回字符串而不是数组。

您的Base64字符串是0x8 0x30,当您查看它并看到以下内容时,该字符串将解释为<backspace><zero>

> window.atob("CDA=")
  "0"


但是,两个字节都存在:

> window.atob("CDA=").charCodeAt(0)
  8

> window.atob("CDA=").charCodeAt(1)
  48


如果需要数组,请参见Creating a Blob from a base64 string in JavaScript

10-07 21:51