如果您使用 spawn
方法在 Node.js 中调用子进程,并且在输出中出现乱码,可能是因为您未正确设置编码。
您可以通过在调用 spawn
时指定 'utf8'
作为第二个参数来解决这个问题。例如:
const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr'], { encoding: 'utf8' });
这样,您就可以通过对 stdout
和 stderr
使用 .toString()
方法将其输出转换为字符串,而不是原始的 Buffer 对象。
另外,您还可以使用 exec
方法替代 spawn
,因为 exec
默认使用 UTF-8 编码。但是,exec
的性能可能略逊于 spawn
。
希望这能帮助您解决问题。