2011-09-18 22 views

Respuesta

5

Según wikipedia, UCS-2 should always be big-endian, es extraño que el nodo solo admita little endian. Puede considerar presentar un error. Dicho esto, cambiar el endian-ness es bastante sencillo ya que es solo una cuestión de orden de bytes. Así que basta con intercambiar bytes para ir y venir entre los pequeños y los grandes, así:

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

Eso es lo que terminé haciendo. Archivaré un informe de error. – skeggse

+3

O no ... aparentemente no les gusta eso. https://github.com/joyent/node/issues/1684 – skeggse