我找到了一个优雅的代码来将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)});
但这是废话。
感谢您的回答。
答案 0 :(得分: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);