node.js USB(hid)条码扫描器读缓冲区

我正在使用node.js,从条形码扫描仪读取数据。 所以这是我的代码:

var HID = require('node-hid'); var usb = require('usb'); // Honeywell Scanner var vid = 0xc2e; var pid = 0xbe1; var d = new HID.HID(vid, pid); d.on("data", function (data) { console.log(data); }); d.on("error", function (error) { console.log(error); d.close(); }); 

我的问题是,我得到一个缓冲区,看起来像<缓冲区00 00 00 00 00 00 00 00>。 在扫描条形码(例如ID为12的条形码)后,控制台返回类似的内容

 <Buffer 00 00 53 00 00 00 00 00> <Buffer 00 00 00 00 00 00 00 00> <Buffer 00 00 53 00 00 00 00 00> <Buffer 00 00 00 00 00 00 00 00> <Buffer 00 00 1e 00 00 00 00 00> <Buffer 00 00 1f 00 00 00 00 00> 

如何将此缓冲区输出转换为可读的string? 在这种情况下,这将是一个12。

谢谢你的帮助!

       

网上收集的解决方案 "node.js USB(hid)条码扫描器读缓冲区"

我想你想要做的是解码你的data缓冲区。

要解码缓冲区 ,只需使用内置的.toString()方法,将字符编码传入以解码为:

 data.toString('hex'); //<-- Decodes to hexadecimal data.toString('base64'); //<-- Decodes to base64 

如果你不传递任何东西toStringutf8将是默认的。


编辑

如果您想知道Node目前支持哪些字符编码( hexbase64utf8除外),请访问官方文档。