首页 > 解决方案 > 如何告诉 Node.js HTTP 服务器端使用某种编码/字节序发送响应二进制数据?

问题描述

我正在编写一些 node.js 服务器端代码并​​遇到编码/字节序的问题。代码如下所示:

http.createServer(function(req, res) {
. . .
res.writeHead(200, {
“content-disposition”: “attachment;filename=” + fileName,
‘content-type’: ‘application/octet-stream',
‘content-length’: file.length
});
res.write(file,“binary”);
res.end();

服务器上的文件内容以“FFD8 FFE0”开头。我在 MacBook Pro 上使用 Chrome。Chrome 保存到我的本地文件系统的文件以“D8FF E0FF”开头</p>

我使用了wireshark,看到发送到浏览器的值是“D8FF E0FF”,这不是我想要的。我可以在节点中做什么来获得正确的编码?

添加/更新:我在服务器(它正在运行 Centos)上使用 Hexdump -n 32 来查看文件内容。我在 MacOS 11.2.1 上使用 Hex Fiend 来查看文件内容。我在 MacOS 上使用 Wireshark 3.4.3 (v3.4.3-0-g6ae6cd335aa9)。

标签: node.jshttpencodingbinaryendianness

解决方案


推荐阅读