6

尽管不推荐使用 Buffer 的“二进制”,但我必须使用它:我编写了一个使用 node js +express 的 Web 应用程序。用户可以下载文件,不使用文件名会乱码

 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 是有效的?

4

1 回答 1

3

实际上,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>

进一步阅读:

于 2013-04-26T15:45:20.780 回答