我有此代码:
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处出现意外令牌
问题可能是我的缓冲区中有空字节:
7b22 7022 3a37 3236 3736 2c22 6222 3a31
3837 7d00 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000
我不知道要读取多少个字节,因此我必须读取一个阈值以上然后将其修整一下。是否有某种方法可以在转换为字符串之前从缓冲区中删除空字节?< / p>
答案 0 :(得分:0)
所以我认为这可行:
const i = b.indexOf(0x00);
const nb = b.slice(0, i);
我只是在显示十六进制0x00的第一个索引之后删除