Node.JS Big-Endian UCS-2

我正在与Node.JS合作。 节点的缓冲区支持little-endian UCS-2,但不是我需要的big-endian。 我会怎么做?

根据维基百科的说法, UCS-2应该始终是big-endian,所以奇怪的是node只支持little 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; } 
Interesting Posts