Javascript 下载二进制格式的字节数组
我正在编写这段代码,我想下载一个字节数组,它在这一点上起作用,但下载的文件是用ascii编码的 下载的文件显示 “65,66,67,0,0,0,0,0,0” 但我在等“ABC” 如何更改此代码以获取二进制格式的文件Javascript 下载二进制格式的字节数组,javascript,arrays,binary,Javascript,Arrays,Binary,我正在编写这段代码,我想下载一个字节数组,它在这一点上起作用,但下载的文件是用ascii编码的 下载的文件显示 “65,66,67,0,0,0,0,0,0” 但我在等“ABC” 如何更改此代码以获取二进制格式的文件 <!DOCTYPE html> <html> <body> <h1>Writing a binary file</h1> <script> var dados = new Int8Array(
<!DOCTYPE html>
<html>
<body>
<h1>Writing a binary file</h1>
<script>
var dados = new Int8Array(10);
dados[0]=65;
dados[1]=66;
dados[2]=67;
function download()
{
let element = document.createElement('a');
element.setAttribute('href', 'data:application/octet-stream,' + dados );
element.setAttribute('download', "teste.bin" );
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
download();
</script>
</body>
</html>
写入二进制文件
var dados=新的Int8Array(10);
护墙板[0]=65;
护墙板[1]=66;
护墙板[2]=67;
函数下载()
{
let element=document.createElement('a');
setAttribute('href','data:application/octet stream',+dados);
element.setAttribute('download','teste.bin');
element.style.display='none';
document.body.appendChild(元素);
元素。单击();
document.body.removeChild(元素);
}
下载();
好的-现在我知道发生了什么
感谢您更新您的帖子:)
您无意中将Int8Array“dados”转换为文本字符串。哎呀
以下是另一种方法:
<!DOCTYPE html>
<html>
<body>
<h1>Writing a binary file</h1>
<script>
function download(bytes, fname) {
debugger;
let blob = new Blob([bytes], {type:"application/octet-stream"});
let link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = fname;
link.click();
}
let dados = new Int8Array(10);
dados[0]=65;
dados[1]=66;
dados[2]=67;
download(dados, "teste.bin");
</script>
</body>
</html>
写入二进制文件
函数下载(字节,fname){
调试器;
设blob=newblob([bytes],{type:“application/octet stream”});
让link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download=fname;
link.click();
}
设dados=新的Int8Array(10);
护墙板[0]=65;
护墙板[1]=66;
护墙板[2]=67;
下载(dados,“teste.bin”);
我也会考虑特里莫尔斯关于使用的极好建议。
“希望有帮助 “下载的文件是用ascii编码的。”问:这到底是什么意思?你有文件(“teste.bin”)吗?是3个字节(65、66、67)?哪一个碰巧映射到ASCII字母“A”、“B”和“C”?请澄清您的问题。您是否考虑过使用
fetch()
?它将以您指定的任何格式将数据保存到文件中。这些值只是一个例子。此代码是自定义视频应用程序的一部分,用户将在其中编辑视频并生成此.bin文件并下载它。我一直都在使用这个视频应用程序,但是下载的文件是ascii格式的,所以一个数组字节在下载的文件上最多占用3个字节。我想把每个数组字节放在一个字节中。我是一个使用C语言的固件开发人员,这些WEB语言对我来说是新的。我来看看fetch()。