本文介绍利用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)
}
})