解决Node Electron下调用Python脚本输出中文乱码的问题
博主原博客地址:https://www.lisok.cn/Front-End/610.html
调用Pyinstaller
打包后的可执行文件方式如下:
import { promisify } from 'util'
import { exec } from 'child_process'
import { app } from 'electron'
async handleVerifyZy(id) {
const entity = await this.findById(id)
const execPromise = promisify(exec)
let args = `-a 202501 -c community-sample.json -r resident-sample.json -t ${entity.timestamp}`
const verifyOutput = await execPromise(
`verify.exe ${args}`
)
// 正常运行结束需要取出结果的excel
let outputExcelName = join(
app.getPath('userData'),
'verify_result',
`${entity.timestamp}_monthly_zy_analysis_result.xlsx`
)
return {
outputExcelName,
verifyOutput
}
}
打印在渲染层发现标准输出的中文乱码
需要修改Python
脚本,定义全局的stdout
的编码
# encoding:utf-8
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding="utf-8")
打包后再次调用,问题解决
参考
1.nodejs调用python输出中文乱码的问题:https://blog.csdn.net/qq_40185480/article/details/105910329