缓冲区到base64 | Node.js的

时间:2017-08-30 03:56:32

标签: javascript node.js encoding base64 buffer

我有一个缓冲区,其中填充了一堆base64字符串。我想要一种解码这些字符串的方法,并能够读取该缓冲区中的所有base64字符串。

const slugId1 = 'YriU6QbcQj6xtdUUosJTxA==';
const slugId2 = 'Su7Zvq1vRca/teTNfEmfNQ==';
const SLUGID_SIZE = 16;

let buffer = Buffer.alloc(SLUGID_SIZE * 2);

buffer.write(slugId1, 0, SLUGID_SIZE, 'base64');
buffer.write(slugId2, SLUGID_SIZE, SLUGID_SIZE, 'base64');

console.log(buffer.toString('base64', 0, SLUGID_SIZE));
console.log(buffer.toString('base64', SLUGID_SIZE, SLUGID_SIZE));

我得到了什么:

YriU6QbcQj6xtdUUosJTxA==

我期望获得:

YriU6QbcQj6xtdUUosJTxA==
Su7Zvq1vRca/teTNfEmfNQ==

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

试试这个

const slugId1 = 'YriU6QbcQj6xtdUUosJTxA==';
const slugId2 = 'Su7Zvq1vRca/teTNfEmfNQ==';
const SLUGID_SIZE = 16;

let buffer = Buffer.alloc(SLUGID_SIZE * 2);

buffer.write(slugId1, 0, SLUGID_SIZE, 'base64');
buffer.write(slugId2, SLUGID_SIZE, SLUGID_SIZE, 'base64');

console.log(buffer.toString('base64', 0, SLUGID_SIZE));
console.log(buffer.toString('base64', SLUGID_SIZE, SLUGID_SIZE * 2));

buffer.toString() - 第三个参数不是长度,它是结束偏移量。