如何在NodeJS中读取缓冲区的前n个字节并转换为字符串?

Sam*_*ngy 1 arrays string buffer character-encoding node.js

我有一个通过网络发送并作为缓冲区到达我的服务器的字符串。它已格式化为我自己的自定义协议(理论上尚未实现)。我想将前 n 个字节用于标识协议的字符串。

我已经做好了:

data.toString('utf8');
Run Code Online (Sandbox Code Playgroud)

在整个缓冲区上,但这只是给了我整个数据包作为一个字符串,这不是我想要实现的。

收到消息后,如何将字节的子集转换为字符串?

提前致谢

小智 5

Buffer.toString()方法接受startend参数,您可以使用它们来切出您想要的子字符串子集。根据您的实施,这可能比Buffer您在回答中建议的分配新中介更快。

查看 Node 的Buffer.toString()方法以获取更多信息。


dev*_*ana 5

我知道我有点晚了,但为什么不只是这样:

buffer.subarray(0, bytes).toString();
Run Code Online (Sandbox Code Playgroud)