javascript - Uint8Array 以文本模式保存而不是二进制
问题描述
我有 Uint8Array ,其值为97
、和。当我做98
99
100
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
函数采用字节序列对象数组,而不是单个对象。它目前将您的每个元素解释Uint8Array
为一个字符串。
const bytes = new Uint8Array([97,98,99,100]);
const blob = new Blob([bytes], {type: "application/octet-stream" });
// ^ ^
推荐阅读
- background - 导航栏品牌没有样式和导航栏没有背景颜色只是透明
- here-api - 这里映射了以色列的地理编码错误的邮政编码
- node.js - 如何让这个 Discord 机器人与 Node.js 一起运行?
- highcharts - 如何使用新数据点更新烛台 Highstock 图表
- vb6 - 虚假的“无法加载控制,未找到许可证”错误?
- autodesk-forge - 如何使用 LMV Toolkit 规范或 Autodesk 材质库材质显示非光照材质 + 纹理?
- c - 如何忽略输入中的 '\n' 字符
- c - 这在 C 中到底意味着什么?
- python - python matplotlib散点图颜色错误
- sql-server - 通过 XML 将 SQL 列转换为 CSV 的问题