【问题标题】:File API - HEX conversion - Javascript文件 API - HEX 转换 - Javascript
【发布时间】:2014-06-02 09:41:48
【问题描述】:

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

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

非常感谢,

杰罗姆

【问题讨论】:

  • 您假设 1 个字符 = 1 个字节,这在 Unicode 中并不总是正确的。一起跳过 String

标签: javascript file api hex


【解决方案1】:

直接进入 Bytes 而不是通过 String

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);

【讨论】:

    猜你喜欢
    • 2018-03-11
    • 1970-01-01
    • 2013-03-28
    • 2018-09-15
    • 2019-06-04
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多