缓冲区构造函数未正确处理缓冲区长度的编码

时间:2013-09-18 13:27:37

标签: node.js

我正在尝试从javascript字符串构造一个utf16le字符串作为新的缓冲区对象。

看来设置一个新缓冲区('xxxxxxxxxx',utf16le)的长度实际上是预期的1/2。比如我们只会在控制台日志中看到5个。

var test = new Buffer('xxxxxxxxxx','utf16le');
for (var i=0;i<test.length;i++) {
        console.log(i+':'+String.fromCharCode(test[i]));
}

节点版本为v0.8.6

1 个答案:

答案 0 :(得分:0)

目前还不清楚你想在这里完成什么。你的陈述可能意味着(至少)两件事:

  1. 如何将JS-String转换为UTF-16-LE字节数组
  2. 如何将包含UTF-16-LE字符串的字节数组转换为JS-String
  3. 您在代码示例中所做的是将表示为UTF-16-LE的字符串中的字节数组解码为UTF-8字符串并将其存储为缓冲区。直到你实际陈述你想要完成的事情,你才有机会得到一致的答案。

    new Buffer('FF', 'hex')将产生长度为1的缓冲区,并设置八位位组的所有位。这可能与你的想法相反。