5
Pracuję z Node.JS. Node's buffers wsparcie little-endian UCS-2, ale nie big-endian, którego potrzebuję. Jak bym to zrobił?Węzeł.JS Big-Endian UCS-2
Pracuję z Node.JS. Node's buffers wsparcie little-endian UCS-2, ale nie big-endian, którego potrzebuję. Jak bym to zrobił?Węzeł.JS Big-Endian UCS-2
Zgodnie z wikipedia, UCS-2 should always be big-endian, więc to dziwne, że węzeł obsługuje tylko małego endiana. Możesz rozważyć zgłoszenie błędu. Powiedział, że zmiana endian-ness jest dość prosta, ponieważ jest to tylko kwestia kolejności bajtów. Więc po prostu zamień bajty, aby przejść między małymi a dużymi endianami, tak:
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;
}
Chodzi o to, co zrobiłem. Złożę raport o błędzie. – skeggse
Albo nie ... najwyraźniej im się to nie podoba. https://github.com/joyent/node/issues/1684 – skeggse