将ArrayBuffer的一部分转换为字符串

时间:2015-07-04 17:50:40

标签: javascript arraybuffer

我有一个C#应用程序,使用WebSockets将ArrayBuffer发送到我的Javascript客户端。 第1个2字节是int值(8位)。

接下来的17个字节代表一串17个字符。

其余的是图像阵列。

现在,我可以读取前2个字节来获取我的整数。 我也可以阅读图像。 如何读取从2索引(使用基索引为1)和以下17个字节开始的字符串值?

所以,到目前为止我的代码是:

var len = e.data.byteLength;
var dv = new DataView(e.data);
var liveViewIndex = dv.getInt8(0);
var tripped = dv.getInt8(1);
//need to get 17 char string here!!
var frame = e.data.slice(19, len - 19);
desktopImage.src = 'data:image/jpeg;base64,' + base64ArrayBuffer(frame);

感谢

1 个答案:

答案 0 :(得分:1)

鉴于该字符串被编码为简单的ASCII,以下内容应该有效:

var string = String.fromCharCode.apply(String, new Uint8Array(e.data, 2, 17));

首先在缓冲区的有趣部分创建Uint8Array view,然后uses it as argumentsString.fromCharCode