process.stdout
输出感到困惑:
console.log()
(等)的 CLI 输出是否以特定字符编码完成?或者它是未指定形式的原始二进制文件?可以有二进制数据吗? (我不知道)Node.js 非常面向 utf8,但是 JS 是 UCS2,我不知道流用它做什么。
相关:如果我将 Buffer 转换为 utf8 格式的字符串(默认),对流应用字符串差异是否安全?请注意,我的 diff 渲染器将使用
jsenc
进行显示,因此它显示不可打印的内容。用例是我希望能够安全地断言/差异 CLI 快照来验证我为各种工具构建的自定义报告器(请注意,这包括发现意外的垃圾/lint 输出,因此我想挖掘真正的最终输出来自 stdio 流)。
(欢迎任何相关建议)
stdout.setEncoding('utf8');
然后您就可以安全地:
stdout.on('data', function(data) { console.log(data); });