我一直试图使用XMLHttpRequest
来从C结构创建一个二进制文件。
如果我在十六进制编辑器中打开文件,则所有字符均按预期进行编码。
如果使用<input type='file' />
将文件添加到静态HTML页面,然后使用FileReader.readAsArrayBuffer()
,则可以看到ArrayBuffer拥有相同的期望值。
但是,当我尝试通过XMLHttpRequest
发送它并将其responseText
放入ArrayBuffer
时,有几个字符被Unicode“替换字符”替换。
如果我在FileReader.readAsText()
测试中使用<input type='file' />
,则会得到与XMLHttpRequest.responseText
相同的字符丢失。
我已经控制了文件服务器,并且尝试在响应中添加Content-Type
标头(application/octet-stream
?),但这似乎没有什么不同。
我在这里缺少什么来确保XMLHttpRequest.responseText
具有正确的数据,以便使用与ArrayBuffer
方式相同的值来创建FileReader
?
最佳答案
当然,经过数小时的研究,就在我坚持不懈地找到解决方案之后。
XMLHttpRequest具有response
属性-我不应该使用responseText
。另外,我可以在发送请求之前设置responseType属性,以确保它在ArrayBuffer中返回。
关于javascript - 来自XMLHttpRequest文本的JS ArrayBuffer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54498866/