Uint8Array 以文本模式而不是二进制保存
Uint8Array saved in text mode instead of binary
我有值 97
、98
、99
和 100
的 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" });
// ^ ^
我有值 97
、98
、99
和 100
的 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" });
// ^ ^