5
我正在使用Node.JS. Node's buffers支持little-endian UCS-2,但不是我需要的big-endian。我会怎么做?Node.JS Big-Endian UCS-2
我正在使用Node.JS. Node's buffers支持little-endian UCS-2,但不是我需要的big-endian。我会怎么做?Node.JS Big-Endian UCS-2
根据维基百科,UCS-2 should always be big-endian所以很奇怪,节点只支持小端。你可能会考虑提交一个bug。也就是说,切换字节序非常简单,因为它只是字节顺序的问题。所以,只需交换字节在小端和大端之间来回切换,如下所示:
function swapBytes(buffer) {
var l = buffer.length;
if (l & 0x01) {
throw new Error('Buffer length must be even');
}
for (var i = 0; i < l; i += 2) {
var a = buffer[i];
buffer[i] = buffer[i+1];
buffer[i+1] = a;
}
return buffer;
}
这就是我最终做的事情。我将提交一份错误报告。 – skeggse
不是......显然他们不喜欢那样。 https://github.com/joyent/node/issues/1684 – skeggse