node js的Buffer.toString('binary')

use*_*647 6 buffer encode node.js express

虽然不推荐使用Buffer的'binary',但我必须使用它:我使用node js + express编写一个web应用程序.用户可以下载文件,如果不使用,文件名将会出现乱码

 res.download(allpath,buf0.toString('binary'));
Run Code Online (Sandbox Code Playgroud)

看值(是一个中国字符):

console.log(new Buffer('?'));
Run Code Online (Sandbox Code Playgroud)

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

var buf0=new Buffer('?');
console.log(new Buffer(buf0.toString('binary')));
Run Code Online (Sandbox Code Playgroud)

输出:Buffer,c3,a7,c2,89,c2,9b

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

fse*_*art 3

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

\n

例子:

\n
console.log(new Buffer(\'\xe7\x89\x9b\'));\n// Output: <Buffer e7 89 9b>\n\nvar buf0=new Buffer(\'\xe7\x89\x9b\');\nconsole.log(new Buffer(buf0.toString(\'utf-8\')));\n// Output: <Buffer e7 89 9b>\n
Run Code Online (Sandbox Code Playgroud)\n

进一步阅读:

\n\n