为什么缓冲区副本打印给我一些垃圾值



我是node.js新手,

我正在阅读Node.js Buffers.

我偶然发现了缓冲区。复制方法。

写了如下代码,

var bufferOne = new Buffer("This is China");
var bufferTwo = new Buffer(20),
   startTarget = 0,
   sourceStart = 8,
   sourceEnd = 0;
var bufferLength = bufferOne.length;
sourceEnd = bufferLength;
console.log("Buffer length "+bufferLength);
bufferOne.copy(bufferTwo,startTarget,sourceStart,sourceEnd);
console.log("Buffer1 "+bufferOne.toString());   
console.log("Buffer2 "+bufferTwo.toString());

输出如下,

Buffer length 13
Buffer1 This is China
Buffer2 China

但有时它也会在"China"后面打印垃圾输出,如下所示,

Buffer length 13
Buffer1 This is China
Buffer2 China���*�
有时

Buffer length 13
Buffer1 This is China
Buffer2 China���

谁能告诉我这是怎么回事?

bufferTwo的长度是20,但是您只复制了13个字节。其余7字节包含半随机数据。

记录:

将一个数字作为第一个参数传递给Buffer()(例如new Buffer(10)),分配一个指定大小的新Buffer对象。分配给Buffer实例的内存是未初始化的,可以包含敏感数据

最新更新