【问题标题】:Node.JS Big-Endian UCS-2Node.JS 大端 UCS-2
【发布时间】:2011-11-19 12:50:01
【问题描述】:

我正在使用 Node.JS。 Node's buffers 支持 little-endian UCS-2,但不支持我需要的 big-endian。我该怎么做?

【问题讨论】:

    标签: javascript unicode node.js buffer endianness


    【解决方案1】:

    根据维基百科,UCS-2 should always be big-endian 所以奇怪的是节点只支持小端。您可能会考虑提交错误。也就是说,切换字节序相当简单,因为它只是字节顺序的问题。所以只需交换字节以在小端和大端之间来回切换,如下所示:

    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; 
    }
    

    【讨论】:

    猜你喜欢
    • 2011-10-21
    • 1970-01-01
    • 2012-02-18
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2016-07-09
    相关资源
    最近更新 更多