node调用python输出中文乱码问题

发布时间 2023-12-11 15:16:46作者: 李嘉图呀

问题描述

使用node的children_process模块调用python脚本文件,出现输出信息为乱码问题

image

// node脚本
const { spawn } = require('child_process');

const pythonProcess = spawn('python', ['./test.python']);
pythonProcess.stdout.on('data', (data) =>{
  const output = data.toString();
  console.log(output)
})

解决方案

在python代码中进行额外处理。

  1. 引入io模块
  2. 引入sys模块
  3. 执行格式转换
// python脚本
import io
import sys

sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')

参考了其他大佬的博客。