请教一下,ASCII编码的ArrayBuffer数组,如何转成utf-8的字符串?

发布于 6 年前作者 weilong10281 次浏览最后编辑 6 年前来自 ask

大家好,我在做低功耗蓝牙的小程序开发,蓝牙连接成功后,调用notifyBLECharacteristicValueChange()方法监听特征值的变化。

我通过串口调试助手让蓝牙发送了一个字符串“abc123”,然后在onBLECharacteristicValueChange中监听,并获取到了一些数据,这些数据存在ArrayBuffer中。

我发的数据是“abc123”,但接收到的数据是以ASCII编码方式存在了数组中。

我想要将ArrayBuffer数组中的数据转换成正常的UTF-8类型的字符串(即“abc”),请问应该如何转换呢?谢谢

2 回复
lei15
lei151 楼5 年前

百度搜一下js的ArrayBuffer与字符串的相互转换,应该能很快找到答案

xiajun
xiajun2 楼4 年前

已解决

function ab2str(buf) {
  return String.fromCharCode.apply(null, new Uint8Array(buf));
}