下载到文件JavaScript时出现奇怪的字节

时间:2018-06-18 19:48:35

标签: javascript file download hex byte

我尝试使用以下函数将字符串下载到文件中:

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。

谢谢!

1 个答案:

答案 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();
}