生成“♀”字符的child_process.exec

我有一个简单的child_process.exec语句,其输出(stdout)由于某种原因在开始时总是有一个“♀”字符

var exec = require('child_process').exec; exec('echo hi', function (err, stdout) { console.log(stdout); }); 

[ SCR]

我的节点是v0.12,我也安装了iojs,它是v2.3。 我已经用相同的结果分别进行了testing。 我也testing过不同的控制台 – cmd.exe,powershell和Git的sh.exe,结果相同。

这个angular色应该存在吗? 如果没有,可能会产生什么呢?

根据child_process的文档 ,传递给stdout的对象是一个缓冲对象。 在打印出来之前,你需要解码它。

我修改了你的代码来演示如何做到这一点。 该符号不再出现在我的控制台。

 var exec = require('child_process').exec; var StringDecoder = require('string_decoder').StringDecoder; var decoder = new StringDecoder('utf8'); exec('echo hi', function (err, stdout) { var message = decoder.write(stdout); console.log(message.trim()); }); 

有关string解码器的更多细节,您可以随时查看文档