javascript - Node.JS 大端 UCS-2

标签 javascript unicode node.js buffer endianness

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

最佳答案

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

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

关于javascript - Node.JS 大端 UCS-2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459332/

相关文章:

javascript - Mongoose findOneAndUpdate 以不同顺序返回参数

javascript - 调试器在 Visual Studio 中不工作

Python:创建 Unicode 字符串

javascript - Angular 绑定(bind)中的 Unicode 字符

MySQL 查询在 NodeJS 中返回 [Object, object],为什么?

javascript - elmt.style.backgroundImage 调整图片大小

javascript - 重新分配、变异、引用类型和值类型

python - 如何解决 TypeError : can only concatenate str (not "int") to str

javascript - 将数据从数据库返回到 Controller

javascript - 使用node下载slack文件