Javascript:如何将十六进制数据转换为二进制数并将其写入文件

时间:2015-08-05 08:59:51

标签: javascript binary hex blob

我有一堆十六进制值,我必须在将它们写入文件之前将其转换为二进制数据。

我在一个整数数组中转换了十六进制字符串,然后我将每个整数转换为一个char:

// bytes contains the integers
str = String.fromCharCode.apply(String, bytes);

现在我创建blob文件并下载它:

var blob = new Blob([str], {type: "application/octet-stream"});
saveAs(blob, "file.bin");

但出了点问题:如果我打印length的{​​{1}}和bytes的长度我有相同的值(str),但该文件包含684 chars,当然不是我的预期。

所以我有:

512 对十六进制值 - > 512 整数 - > 512 字符 - > 我保存文件 - > 684 文件内的字符。

我做错了什么?我甚至尝试将字符集添加到blob文件中,即:

512

但没有成功。

修改

原版HEX:

Original HEX

已保存的文件:

Saved file

1 个答案:

答案 0 :(得分:5)

感谢 Andrey ,我找到了解决方案:

我必须以二进制模式编写,所以:

(\xs -> length xs > 15)