如何从child_process.stdout获取非ascii字符?

时间:2014-06-19 17:59:42

标签: node.js

我有一个节点任务,它产生一个子进程并转发该进程'输出到stdout:

var child = require( 'child_process' ).spawn( 'some_cmd' );
child.stdout.on( 'data', process.stdout.write.bind( process.stdout ) );

这样可以正常工作,除非任何非ascii字符,特别是控制文本颜色的字符,都不会通过。所以我在child_process中的所有文本都是白色的。

有没有人知道如何解决这个问题?或者,是否有人知道如何直接显示child_process输出而不桥接流?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题(虽然如果有人对如何真正阅读角色控制数据有答案,我仍然感兴趣):

使用child_process.spawn调用stdio: 'inherit'会将stdout和stderr传递给子进程,因此此问题就会消失。

require( 'child_process' ).spawn( 'cmd', { stdio: 'inherit' } );