首页 > 解决方案 > 从nodejs产生的python进程读取输出的问题

问题描述

从节点中生成的 python 进程读取输出时,我遇到了字符编码问题。

这是启动生成过程的代码,结果是一个 JSON 对象。

const python = spawn('python', ['pvm.py'])
python.stdin.write(JSON.stringify(results));
python.stdin.end();

以及产生的进程打印数据时的回调

python.stdout.on('data', async function (result) {
    let pvm = result.toString()
    //other stuff
}

python 文件只打印一个字典,其中包含通过处理来自标准输入的 JSON 生成的字符的键和值。直接运行 python 文件时,我收到 'ʊ': [2, []] 作为输出的一部分。生成过程中的缓冲区在转换为字符串时具有 'ʊ': [1, ['�', '�']] ,我认为这是由于将打印的 python 文本放入缓冲区时出错引起的。

有没有人对为什么会发生这种情况以及如何解决有任何建议?

标签: pythonnode.jsunicodechild-process

解决方案


如果使用 += 将特殊字符添加到列表中,将来遇到此问题的任何人都使用 append 代替。


推荐阅读