node.js调用ping命令,并解决乱码问题

5,495 阅读1分钟

本文介绍利用node.js执行ping命令,把返回的内容转为我们正常可以阅读的文字。

出现乱码的原因是CMD默认的是gbk2312 编码 , 而nodejs 默认的是utf-8的格式, 所以在exec 运行的时候接受的cmd命令返回值回事乱码情况

下载

使用iconv进行转码

npm install iconv-lite

引入

const iconv = require('iconv-lite');
iconv.skipDecodeWarning = true; 

第二句不引入会提示一个警告

完整代码

const childProcess = require('child_process')
var iconv = require('iconv-lite');
iconv.skipDecodeWarning = true;
var encodings = 'cp936';
var binaryEncoding = 'binary';

childProcess.exec(`ping 10.10.10.11`,{ encoding: binaryEncoding },(err, stdout, stderr)=>{
    if(err){
      console.log(iconv.decode(err, encodings))
      return false;
    }else{
      let data = iconv.decode(stdout, encodings);
      console.log(data)
}
})

参考文章:www.cnblogs.com/sunjinggege…