我正在使用Node.JS. Node's buffers支持little-endian UCS-2,但不支持big-endian,我需要它。我该怎么做?
答案 0 :(得分:5)
根据维基百科,UCS-2 should always be big-endian所以奇怪节点只支持小端。您可以考虑提交错误。也就是说,切换endian-ness是相当直接的,因为它只是字节顺序的问题。所以只需交换字节就可以在小端和大端之间来回切换,如下所示:
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;
}