在Windows平台下,Nodejs调用系统命令会发生乱码,改两个地方即可解决问题,
第一个:根目录下的package.json文化
"scripts": {"start": "chcp 65001 && react-scripts start","build": "react-scripts build","test": "react-scripts test","eject": "react-scripts eject","estart": "electron .","estart-win": "chcp 65001 && electron ."},
在estart下加一个estart-win,命令就是
chcp 65001 && electron .
chcp 65001 && 命令
就是在当前页使用UTF-8格式
第二个就是使用iconvLite进行转换
const {spawn,exec} = require('child_process');
const iconvLite = require('iconv-lite');var ff=function(event,arg){const ls = spawn('ipconfig');ls.stdout.on('data', (data) => {console.log(`stdout: ${iconvLite.decode(data, 'cp936')}`);});ls.stderr.on('data', (data) => {console.log(`stderr: ${iconvLite.decode(data, 'cp936')}`);});ls.on('close', (code) => {console.log(`子进程退出码:${iconvLite.decode(code, 'cp936')}`);});
}
module.exports.ff = ff