javascript atob ("CDA=")未提供预期的行为(至少在 Chrome 32 上)

标签 javascript base64

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

相关文章:

javascript - 通过 each() 添加的 jQuery 事件处理程序似乎覆盖了早期的事件处理程序

postgresql - 阻止 PostgreSQL 在多行中拆分值)?

javascript - 如何在点击时将功能设置为真/假?

javascript - 测试 jQuery 插件的资源/技术/注意事项?

php - 自动完成不适用于动态创建的行

javascript - 如何检测所选文本是否包含在 span 标签中

mysql - 将canvas绘制的图像保存到mysql数据库

java - 用 Java 编码的 Base64 图像不显示在 HTML 中

swift - 将 base64 字符串转换为十六进制为可读字符串 : Swift

soap - 在 SOAP 请求中创建 SAAJ 对象模型的问题