我尝试使用以下函数将字符串下载到文件中:
function handleDownload(){
var settings = "";
for (var i in archivo){
settings += String.fromCharCode(parseInt(archivo[i], 16));
}
var blob=new Blob([settings], {type: "application/octet-stream"});
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="config.bin";
link.click();
}
它的工作正常,但有时会增加价值' 0xC2'在中间。
例如,使用以下字节数组作为输入
00 a0 42 00
文件返回
00 c2 a0 42 00
我该如何解决这个问题?我检查了整个文件,它在一个大于127的字节之前总是一个0xC2。
谢谢!
答案 0 :(得分:0)
解决!我创建了一个无符号数组(Uint8Array)并将其发送到Blob。
var archivo = ["7E","7F","80","81",
"7E","7F","80","81",
"7E","7F","80","81",
"7E","7F","80","81"];//126,127,128,129
function d(){
var bytes = new Uint8Array(archivo.length);
for (var i in archivo){
bytes[i] = parseInt(archivo[i], 16);
}
var blob = new Blob([bytes], {type: "application/octet-stream"});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "config.bin";
link.click();
}