如何处理(cli)stdoutstream中的字符编码输出到node.js中?

我很困惑如何安全地存储和读取Node.js中的process.stdout输出:

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

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

和相关:如果我将缓冲区转换为string在UTF8(默认)是适用于string比较安全的? 注意我的diff渲染器将使用jsenc来显示,所以它显示非printables。

用例是我想能够安全地断言/比较CLI快照来validation我为各种工具构build的自定义logging(注意,这包括发现非预期的垃圾/皮棉输出,所以我想要挖掘真正的最终输出stdiostream)。

(任何相关的build议是值得欢迎的)

stdout.setEncoding('utf8');

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