我正在尝试使用 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 .
关于javascript atob ("CDA=")未提供预期的行为(至少在 Chrome 32 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21701018/