我正在使用child_process.exec
运行一个命令,在其输出中包含一些特殊字符,但这些字符总是被Node.js解释为替换字符(\uFFFD
)。以下代码段应足以证明此行为:
require("child_process").exec("echo äëïöü", function(stderr, stdout) {
console.log(stdout);
});
有什么办法可以确定输出中返回的特殊字符究竟是什么?我正在使用Windows,如果它是相关的。
答案 0 :(得分:1)
exec()
的默认encoding
为utf8
。您可以通过设置encoding: 'buffer'
:
require("child_process").exec("echo äëïöü",
{ encoding: 'buffer' },
function(err, stdout, stderr) {
// `stdout` and `stderr` are Buffer instances
console.dir(stdout);
});