Uint8Array 以文本模式而不是二进制保存

Uint8Array saved in text mode instead of binary

我有值 979899100 的 Uint8Array。当我这样做时

var blob = new Blob(new Uint8Array([97,98,99,100]), {type: "application/octet-stream" });
const a = document.createElement("a");
a.href = URL.createObjectURL(blob);
a.setAttribute("download", "binaryData.random");
document.body.appendChild(a);
a.click();

它开始下载文件,但当我打开它时,它包含 979899100 而不是 abcd。我做错了什么?

Blob constructor 接受一组字节序列对象,而不是单个对象。它目前将 Uint8Array 的每个元素解释为一个字符串。

const bytes = new Uint8Array([97,98,99,100]);
const blob = new Blob([bytes], {type: "application/octet-stream" });
//                    ^     ^