我正在尝试使用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。