天天看点

child_process.spawn中文乱码

在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