对于string中的每个字母,打印其ascii字符表示

我正在从一个套接字读取,并尝试debugging一些正在进入的消息。现在,我试图看看是否有任何“隐形”字母偷偷通过我的正则expression式。 我做了以下为了得到字面值的string。

socket.on('data', function (data) { const message = data.toString('ascii'); let characters = []; message.forEach((letter, i) => characters.push(message.charCodeAt(i))); console.log(characters); }); 

结果如下所示:

 [58, 13, 10, 26] 

如果没有(手动)查看ASCII表格上的每个字母,我想要更多的人阅读。 也就是说,列表看起来更像这样:

 [':', '\r', '\n', 'ctrl-z'] // or [':', 'carriage return', 'new line', 'substitution'] 

有什么办法用Node.js来完成这个吗?

在节点5.1中,您可以将string拆分为一个字符数组和console.log数组。 内置的console.log将打印非打印字符的转义码:

 socket.on('data', function(data){ const message = data.toString('ascii'); console.log(message.split('')) }) 

如果您使用较低版本的节点,则可以使用节点中的util包来获取字符的string文字表示。

像这样的东西应该工作:

 socket.on('data', function(data){ const message = data.toString('ascii'); console.log(message.split('').map(function(c){ return require('util').inspect(c); })) }) 

使用message.charAt(i)而不是charCodeAt