虽然缓冲区的“二进制”被废弃了,但我必须使用它:我编写了一个web应用程序使用节点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是工作的?
发布于 2013-04-26 15:45:20
实际上,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>进一步读:
https://stackoverflow.com/questions/16234913
复制相似问题