0

我找到了一个优雅的代码来将 ArrayBuffer 转换为 charCode。

但我需要char,而不是charCode。

function ab2s (buf) {
  var view = new Uint8Array (buf);
  return Array.prototype.join.call (view, ",");
}

我试过了

return Array.prototype.join.call (view, function() {String.fromCharCode(this)});

但这是废话。

感谢您的回答。

4

1 回答 1

1
return Array.prototype.join.call (view, function() {String.fromCharCode(this)});

但这是废话。

显然,由于Array::join不使用回调来转换每个元素,而只使用应连接元素的分隔符。

相反,要在加入它们之前转换每个元素,您将使用Array::map

return Array.prototype.map.call(view, function(charcode) {
    return String.fromCharCode(charcode);
}).join('');

但是,有一个更简单的解决方案,因为String.fromCharCode确实需要多个参数:

return String.fromCharCode.apply(String, view);
于 2014-05-03T20:48:39.703 回答