代码之家  ›  专栏  ›  技术社区  ›  Ben

来自xmlhttpRequest文本的JS arrayBuffer

  •  0
  • Ben  · 技术社区  · 6 年前

    我一直在尝试使用 XMLHttpRequest 获取从C结构创建的二进制文件。

    如果我用十六进制编辑器打开文件,所有字符都会按预期进行编码。

    如果将文件添加到静态HTML页,请使用 <input type='file' /> 然后使用 FileReader.readAsArrayBuffer() ,我可以看到arrayBuffer具有相同的预期值。

    但是,当我试图通过 对象 并把它的 responseText 变成一个 ArrayBuffer ,有几个字符被Unicode“替换字符”替换。

    如果我使用 FileReader.readAsText() <输入类型='file'/gt; 测试,我得到了和发生在 XMLHttpRequest.responseText .

    我可以控制文件服务器,并尝试添加 Content-Type 响应的标题( application/octet-stream ?)但似乎没什么区别。

    我在这里缺少什么来确保 xmlhttpRequest.responseText(xmlhttpRequest.responseText) 有正确的数据,所以 阵列缓冲器 创建的值与 FileReader 方式?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Ben    6 年前

    当然,在做了几个小时的工作之后,在我穿上橡皮鸭之后,我就找到了解决办法。

    XMLHttpRequest 有一个 response 属性-我不应该使用 responseText . 另外,我可以设置 responseType 属性,然后发送请求以确保它在ArrayBuffer中返回。