我有这个代码:
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: Unexpected token in JSON at position 15
问题可能是我的缓冲区中有空字节:
7b22 7022 3a37 3236 3736 2c22 6222 3a31
3837 7d00 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000
我不知道要读取多少字节,所以我必须读取超过阈值的数据,然后将其缩小。有什么方法可以在转换为字符串之前从缓冲区中删除空字节吗?
最佳答案
所以我认为这有效:
const i = b.indexOf(0x00);
const nb = b.slice(0, i);
我只是在十六进制 0x00 的第一个索引出现后删除
关于node.js - 从 Node.js 的缓冲区中删除 "empty"字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57283950/