console.log会输出二进制的问题
发布于 12 年前 作者 cloudaice 7972 次浏览 最后一次编辑是 8 年前

用child_process监听tailf输出的日志,发现使用console.log输出显示的时候,输出的是这种形式的:

<Buffer 31 32 37 2e 30 2e 30 2e 31 20 2d 20 2d 20 5b 32 39 2f 53 65 70 2f 32 30 31 32 3a 31 31 3a 31 34 3a 35 32 20 2b 30 38 30 30 5d 20 22 47 45 54 20 2f 63 68 ...>

但是使用sys.puts()输出的是正常的日志形式。有人介绍一下这之间的原因吗?

10 回复

console.log()是会根据变量的数据类型来输出相应的信息的。 你这里输出的是Buffer对象,如果要转换成字符串,应该这样console.log(xx.toString())

多谢!!!

这输出的buf是二进制吗?

我也没有仔细研究,目测是二进制。呵呵!!!

@cloudaice 二进制的话应该是只有01,十六进制才有abcdef

@a272121742 他是输出每个字节的16进制

这里输出的是一个Buffer

@cloudaice 为何要把Buffer在console里输出呢,输出大量信息,性能会下降吧。。。

回到顶部