如何显示 child_process.exec 返回的特殊字符?
How can I display special characters returned by child_process.exec?
我正在使用 child_process.exec
到 运行 一个在其输出中包含一些特殊字符的命令,但是这些总是被 Node.js 解释为替换字符(\uFFFD
).以下代码段应充分展示此行为:
require("child_process").exec("echo äëïöü", function(stderr, stdout) {
console.log(stdout);
});
有什么方法可以确定输出中实际返回的特殊字符是什么?如果相关,我正在使用 Windows。
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);
});
我正在使用 child_process.exec
到 运行 一个在其输出中包含一些特殊字符的命令,但是这些总是被 Node.js 解释为替换字符(\uFFFD
).以下代码段应充分展示此行为:
require("child_process").exec("echo äëïöü", function(stderr, stdout) {
console.log(stdout);
});
有什么方法可以确定输出中实际返回的特殊字符是什么?如果相关,我正在使用 Windows。
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);
});