node exec win乱码
发布于 3 个月前 作者 im-here 590 次浏览 来自 问答

最近有个需求在内网服务器上跑几个ping命令测试点东西 在Mac下写完测试了也问题,于是就丢服务器,服务器是win的,发现用exec执行完ping命令返回有乱码

用iconv-lite尝试转gbk还是乱码

各位前辈有遇到过吗?

主要代码如下

var exec = require('child_process').exec;
exec('ping -c3 127.0.0.1', function (err, stdout, stderr) {
    console.log(stdout) // 这里在win下获得的值有乱码
});
2 回复

试试

  const encoding          = 'cp936';
  const binaryEncoding    = 'binary';
  
  function iconvDecode(str = '') {
	  return iconv.decode(Buffer.from(str, binaryEncoding), encoding);
  }
  
  const  { exec } = require('child_process');  
  exec('xxx', { encoding: 'binary' }, (err, stdout, stderr) => {
  		const result = iconvDecode(stdout);
		xxx
  });

@450570469 非常感谢,完美解决!

回到顶部