1

我感到困惑如何安全地存储和读取的Node.js的process.stdout输出:如何处理node_js中输出的(cli)stdout流的字符编码?

是在一个特定的字符编码进行的console.log()(并且这样)的CLI输出?或者它是未指定形式的原始二进制文件?有没有二进制数据? (我不知道)

Node.js是非常面向utf8,但是然后JS是UCS2,我不知道这个流用它做什么。

和相关:如果我将缓冲区转换为utf8中的字符串(默认值),将字符串diff应用于流是否安全?请注意,我的差异渲染器将使用jsenc进行显示,因此它显示非printables。

用例是我希望能够安全地声明/ diff CLI快照来验证我为各种工具构建的自定义记录器(请注意,这包括发现非预期的垃圾桶/皮棉输出,所以我想点击来自stdio流的真正的最终输出)。

(任何相关的建议是欢迎)

回答

4

stdout.setEncoding('utf8');

然后你就可以放心地: stdout.on('data', function(data) { console.log(data); });

+0

AFAICT这只以tty,而不是FS工作。 – brennanyoung