下载到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字符。