2011-09-18 269 views

回答

5

根据维基百科,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; 
} 
+0

这就是我最终做的事情。我将提交一份错误报告。 – skeggse

+3

不是......显然他们不喜欢那样。 https://github.com/joyent/node/issues/1684 – skeggse