在Node.js中从缓冲区中删除“空”字节

3

我有这段代码:

  const start = pos * 100;
  const b = Buffer.alloc(99);
  fs.readSync(logFD, b, 0, b.length, start);
  console.log(String(b)); 
  const j = JSON.parse(String(b).trim());

我遇到了这个错误:

SyntaxError: 在JSON的第15个位置发现意外的token

问题很可能是我在缓冲区中有空字节。
7b22 7022 3a37 3236 3736 2c22 6222 3a31
3837 7d00 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000

我不知道要读取多少字节,所以必须读取超过一个阈值的字节,然后再将其修剪。有没有办法在将其转换为字符串之前从缓冲区中删除空字节?

1个回答

5

所以我认为这个方案可行:

  const i = b.indexOf(0x00);
  const nb = b.slice(0, i);

我只是删除第一个出现的十六进制0x00之后的内容


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接