CNode

node exec win乱码

问答
Iim-here发布于9 年前最后回复9 年前2 回复9060 浏览0 收藏

最近有个需求在内网服务器上跑几个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)

T
Tong-Huang#1·9 年前

试试

  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
  });
I
im-here#2·9 年前
引用 Tong-Huang试试

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

参与回复
登录后即可参与回复。登录