如何在 Node.js 中处理命令行输出的标准输出流(stdout)的字符编码?

3

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

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

Node.js非常utf8导向,但JS是UCS2,我不知道流处理它。

相关问题:如果我将Buffer转换为utf8格式的字符串,是否可以安全地将字符串差异应用于流?请注意,我的差异渲染器将使用jsenc进行显示,因此它会显示非可打印字符。

使用情况是,我希望能够安全地断言/比较CLI快照,以验证我为各种工具构建的自定义报告程序(请注意,这包括检测意外的trash/lint输出,因此我想从stdio流中获取真正的最终输出)。

(欢迎提供任何相关建议)

1个回答

7
stdout.setEncoding('utf8');

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接