Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下载到JavaScript文件时出现奇怪的字节_Javascript_File_Download_Hex_Byte - Fatal编程技术网

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

下载到JavaScript文件时出现奇怪的字节,javascript,file,download,hex,byte,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=documen

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

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 '/p> 例如,使用以下字节数组作为输入
00a04200

文件返回
00 c2 a0 42 00

我怎样才能解决这个问题?我检查了整个文件,在大于127的字节之前总是0xC2


谢谢

解决了!我创建了一个无符号数组(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();
}

(archivo[i]什么?正确加载了'settings'字符串。我在控制台中打印了它以检查是否存在0xC2字符。问题在于下载部分。正如我所说,当字节大于127时,之前添加了0xC2字符。