Node.js 数据流重定向中文乱码,怎么解决啊。
发布于 10 年前 作者 hackerjs 8544 次浏览 最后一次编辑是 8 年前
var child = require('child_process').exec;
var fs = require('fs');

var son = child('dir', function(err,stdout,stderr){});

var w = fs.createWriteStream('e:\\lab\\pipe.txt', {encoding:'utf8'});

son.stdout.setEncoding('utf8');

son.stdout.pipe(w);

打开pipe.txt, 中文都是乱码

5 回复

这一行要改 var son = child(‘dir’, function(err,stdout,stderr){}); 改成 var son = child(‘dir’, {encoding: ‘binary’}, function(err,stdout,stderr){});

谢谢你的帮助。

问题仍存在,,,还是乱码哦。

找编码格式…

@hackerjs 如果系统本身不是utf8编码,写文件之前就应该转码,用iconvlite转换,然后再写

var child = require(‘child_process’).exec; var fs = require(‘fs’); var son = child(‘dir’, {encoding: ‘utf-8’}, function (err, stdout, stderr) {

}); var w = fs.createWriteStream(’./nb.js’, {encoding: ‘utf-8’,flag: ‘w’}); son.stdout.setEncoding(‘utf-8’); son.stdout.pipe(w);

回到顶部