ArrayBuffer 解码
//1.h5解码
arrayBufferToString(buffer, encoding = 'utf-8') {
const decoder = new TextDecoder(encoding);
return decoder.decode(buffer);
}
//2.app解码
arrayBufferToStringApp(array) { //app解码
var out, i, len, c;
var char2, char3;
if (array instanceof ArrayBuffer) {
array = new Uint8Array(array);
}
out = "";
len = array.length;
i = 0;
while (i < len) {
c = array[i++];
switch (c >> 4) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
// 0xxxxxxx
out += String.fromCharCode(c);
break;
case 12:
case 13:
// 110x xxxx 10xx xxxx
char2 = array[i++];
out += String.fromCharCode(((c & 0x1F) << 6) | (char2 & 0x3F));
break;
case 14:
// 1110 xxxx 10xx xxxx 10xx xxxx
char2 = array[i++];
char3 = array[i++];
out += String.fromCharCode(((c & 0x0F) << 12) |
((char2 & 0x3F) << 6) |
((char3 & 0x3F) << 0));
break;
}
}
return out;
},
// #ifdef H5
const text = this.arrayBufferToString(res.data)
console.log(JSON.parse(text), '接收h5')
// #endif
// #ifdef APP-PLUS
const text = this.arrayBufferToStringApp(res.data)
console.log(JSON.parse(text), '接收app')
// #endif