我正在使用 Node.JS。 Node's buffers支持小端 UCS-2,但不支持我需要的大端。我该怎么做?
最佳答案
根据维基百科,UCS-2 should always be big-endian所以奇怪的是 Node 只支持小端。您可能会考虑提交错误。也就是说,切换字节顺序是相当简单的,因为它只是字节顺序的问题。所以只需交换字节以在小端和大端之间来回移动,就像这样:
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;
}
关于javascript - Node.JS 大端 UCS-2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459332/