Node.js 节点js';s Buffer.toString(';二进制';)
虽然缓冲区的“二进制”已被弃用,但我必须使用它: 我使用NodeJS+express编写了一个web应用程序。用户可以下载文件,如果不使用,文件名将被篡改Node.js 节点js';s Buffer.toString(';二进制';),node.js,express,buffer,encode,Node.js,Express,Buffer,Encode,虽然缓冲区的“二进制”已被弃用,但我必须使用它: 我使用NodeJS+express编写了一个web应用程序。用户可以下载文件,如果不使用,文件名将被篡改 res.download(allpath,buf0.toString('binary')); 观察值(是中文字符): 输出:缓冲器,e7,89,9b 及 输出:缓冲器,c3,a7,c2,89,c2,9b 这个算法意味着什么?为什么使用二进制字符串是有效的?实际上,新的缓冲区('牛')是新缓冲区的快捷方式牛', 'utf-8') 因此,如果
res.download(allpath,buf0.toString('binary'));
观察值(是中文字符):
输出:缓冲器,e7,89,9b
及
输出:缓冲器,c3,a7,c2,89,c2,9b
这个算法意味着什么?为什么使用二进制字符串是有效的?实际上,新的缓冲区('牛')代码>是新缓冲区的快捷方式牛', '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>
console.log(新缓冲区('牛'));
//输出:
var buf0=新缓冲区('牛');
日志(新的缓冲区(buf0.toString('utf-8'));
//输出:
进一步阅读:
var buf0=new Buffer('牛');
console.log(new Buffer(buf0.toString('binary')));
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>