node调用cmd输出乱码解决方案

2020-05-12  本文已影响0人  renxiaoyao09

简体中文windows命令行,都使用的是CP936(近似于gb2312)编码,nodejs以utf8识别是会出问题。
可以这样处理:

var child_process = require('child_process');
var iconv = require('iconv-lite');
var encoding = 'cp936';
var binaryEncoding = 'binary';

child_process.exec('svn log', { encoding: binaryEncoding }, function(err, stdout, stderr){
    console.log(iconv.decode(new Buffer(stdout, binaryEncoding), encoding), iconv.decode(new Buffer(stderr, binaryEncoding), encoding));
});

先用binary来存储输出的文本,再用iconv来以cp936解析。

上一篇 下一篇

猜你喜欢

热点阅读