首页 > 解决方案 > Javascript 在 USB 流中编码“ENQ”ASCII 字符

问题描述

我正在使用 Node-USB 库:https ://github.com/tessel/node-usb

在输出方法中

    transfer(data, callback(error)
    Perform a transfer to write data to the endpoint.)

我需要发送 05 4d。这是ENQ M。

如果我这样做.transfer("5M"--- 我得到 35 4D
如果我这样做.transfer("ENQM"-- 我得到 45 4E 51 4D

如何获得将 ENQ M 编码为 05 4d 的传输?

标签: javascriptnode.jslibusb

解决方案


ENQ在此示例中 并不表示三个字母E,NQ. 它指的是 Unicode 控制字符 INQUIRY U+0005,在 ASCII 中也恰好是 0x05。

要在字符串中表示它,请使用\u0005.transfer("\u0005M");

为了便于阅读,您可以将其放入一个常量中:

const ENQ = "\u0005";

// ...
foo.transfer(ENQ+"M");

推荐阅读