javascript - 文件 API - 十六进制转换 - Javascript

标签 javascript file api hex

我正在尝试借助文件 API 读取本地文本文件,并使用与“bin2hex()”类似的函数(使用 CharCodeAt() 函数)将其转换为 HEX 文件,然后最终处理十六进制数字来获取我的结果。所有这些都用 JavaScript 编写。

为了将文件转换为十六进制数组,我通过 for 循环文件扫描文件的每个字符,然后使用 bin2hex() 函数获取十六进制值。我期望结果在 0x00 和 0xFF 之间,对应于我尝试转换的任何字符。但似乎有时我会无缘无故地获得 0xfffd 或 0x00 。通过 charcodeat() 函数处理或使用文件 API 读取的字符是否有限制?或者是否有更简单的方法(PHP、Ajax)?

非常感谢,

杰罗姆

最佳答案

直接进入字节而不是通过字符串

var file = new Blob(['hello world']); // your file

var fr = new FileReader();
fr.addEventListener('load', function () {
    var u = new Uint8Array(this.result),
        a = new Array(u.length),
        i = u.length;
    while (i--) // map to hex
        a[i] = (u[i] < 16 ? '0' : '') + u[i].toString(16);
    u = null; // free memory
    console.log(a); // work with this
});
fr.readAsArrayBuffer(file);

关于javascript - 文件 API - 十六进制转换 - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23144647/

相关文章:

javascript - 使用循环更改 DOM &lt;input&gt; 值

javascript - 带有标记簇及其信息窗口的 Google map

javascript - 为什么 navigator.mediaDevices 在本地主机和服务器中的工作方式不同?

c - 从一个文件读取输入并将其写入 C 中的另一个文件

c# - 将 Zip 文件转换为 byte[] 并将 byte[] 转换为 zip 文件

javascript - 如何在reactjs Put方法中使用AJAX单击时重新加载表格

api - 是否有用于以编程方式运行 Scala REPL 的 API?

javascript - 菜单项 onclick 在悬停事件上调用多 css

c - 如何将文件的第一行(字符串)和第一列(字符串)作为C中二维数组的索引

api - 使用 webhook 在不和谐服务器上创建 channel