Tôi đang làm việc với Node.JS. Node's buffers hỗ trợ nhỏ UCS-2, nhưng không phải là người lớn, mà tôi cần. Tôi sẽ làm như thế nào?Nút.JS Big-Endian UCS-2
5
A
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;
}
Đó là những gì tôi đã làm. Tôi sẽ gửi báo cáo lỗi. – skeggse
Hay không ... dường như họ không thích điều đó. https://github.com/joyent/node/issues/1684 – skeggse