如何处理node.js中的/ cld输出的stdout流的字符编码?

Bar*_*vds 3 javascript encoding stream command-line-interface node.js

我对如何安全地存储和读取process.stdoutNode.js中的输出感到困惑:

console.log()(等)的CLI输出是否以特定字符编码完成?或者是未指定形式的原始二进制文件?可以有二进制数据吗?(我不知道)

Node.js非常面向utf8,但是JS是UCS2,我不知道流对它做了什么.

并且相关:如果我将utf8中的Buffer转换为String(默认值),将string-diff应用于流是否安全?请注意我的diff渲染器将jsenc用于显示,因此它显示非printables.

用例是我希望能够安全地断言/区分CLI快照以验证我为各种工具构建的自定义记者(注意这包括发现意外的垃圾/ lint输出,所以我想点击真正的最终输出来自stdio流).

(欢迎任何相关建议)

rai*_*bba 6

stdout.setEncoding('utf8');

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