node.js - Node js 's Buffer.toString( ' 二进制')

标签 node.js express buffer encode

虽然 Buffer 的 'binary' 已被弃用,但我必须使用它: 我使用 node js +express 编写了一个网络应用程序。用户可以下载文件,如果不使用文件名会乱码

 res.download(allpath,buf0.toString('binary'));

观察值(是一个中文字符):

console.log(new Buffer('牛'));

输出:缓冲区,e7,89,9b

var buf0=new Buffer('牛');
console.log(new Buffer(buf0.toString('binary')));

输出:缓冲区,c3,a7,c2,89,c2,9b

这个算法是什么意思,为什么使用二进制 toString 是有效的?

最佳答案

实际上,new Buffer('牛')new Buffer('牛', 'utf-8')的快捷方式。
因此,如果您想将其转换回字符串,则必须使用 toString('utf-8')

例子:

console.log(new Buffer('牛'));
// Output: <Buffer e7 89 9b>

var buf0=new Buffer('牛');
console.log(new Buffer(buf0.toString('utf-8')));
// Output: <Buffer e7 89 9b>

进一步阅读:

关于node.js - Node js 's Buffer.toString( ' 二进制'),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16234913/

相关文章:

javascript - 作为交互式提示运行 gulp

node.js - NVM 安装 Node 不会更改 NPM 全局模块根文件夹

javascript - postman 中的响应数据有一些附加字符

node.js - Express.js 中间件集成测试

javascript - 在 NodeJs 中将此缓冲区转换为 JSON

javascript - 如何在HTML上打印JavaScript爬取的内容

javascript - Nodejs 将流管道插入已管道化的 N 个流中

node.js - Express res header 事件不再触发

vim - 在 ViM 中,缓冲区 0 是什么?

c - 强制程序使用输入字符串调用 C 函数