Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.JS Big-Endian UCS-2_Javascript_Unicode_Node.js_Buffer_Endianness - Fatal编程技术网

Javascript Node.JS Big-Endian UCS-2

Javascript Node.JS Big-Endian UCS-2,javascript,unicode,node.js,buffer,endianness,Javascript,Unicode,Node.js,Buffer,Endianness,我正在使用Node.JS。支持little-endian UCS-2,但不支持我需要的big-endian。我该怎么做呢?根据维基百科的说法,所以很奇怪节点只支持little endian。你可以考虑提交一个bug。这就是说,切换endian是相当直接的,因为它只是一个字节顺序的问题。所以只需交换字节,在小端和大端之间来回移动,如下所示: function swapBytes(buffer) { var l = buffer.length; if (l & 0x01) {

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

根据维基百科的说法,所以很奇怪节点只支持little endian。你可以考虑提交一个bug。这就是说,切换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; 
}
函数交换字节(缓冲区){
var l=缓冲区长度;
如果(l&0x01){
抛出新错误('缓冲区长度必须为偶数');
}
对于(变量i=0;i
这就是我最后做的事。我会提交一份错误报告。或者不…显然他们不喜欢这样。