2011-09-18 20 views

Trả lời

5

Theo wikipedia, UCS-2 should always be big-endian vì vậy thật kỳ quặc rằng nút chỉ hỗ trợ ít người dùng cuối. Bạn có thể xem xét việc nộp một lỗi. Điều đó nói rằng, chuyển đổi endian-ness là khá thẳng về phía trước vì nó chỉ là vấn đề của thứ tự byte. Vì vậy, chỉ cần trao đổi byte xung quanh để đi qua lại giữa người lớn nhỏ và lớn, như vậy:

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

Đó là những gì tôi đã làm. Tôi sẽ gửi báo cáo lỗi. – skeggse

+3

Hay không ... dường như họ không thích điều đó. https://github.com/joyent/node/issues/1684 – skeggse