0

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

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

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

节点版本为 v0.8.6

4

1 回答 1

0

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

  1. 如何将 JS 字符串转换为 UTF-16-LE 字节数组
  2. 如何将包含 UTF-16-LE 字符串的字节数组转换为 JS 字符串

您在代码示例中所做的是将表示为 UTF-16-LE 的字符串中的字节数组解码为 UTF-8 字符串并将其存储为缓冲区。在你真正说出你想要完成的事情之前,你得到一个连贯的答案的机会是 0。

new Buffer('FF', 'hex')将产生一个长度为 1 的缓冲区,其中包含八位组的所有位。这可能与您认为的相反。

于 2013-09-18T13:46:31.240 回答