// 小程序中sendSocketMessage是支持ArrayBuffer的,我这个错误原因在于new Uint8Array不是ArrayBuffer,而是他的一个属性值才是arrayBuffer
var init8arr = new Uint8Array([1,0,2,0,1]);
wx.sendSocketMessage({
data: init8arr.buffer,
success:function(e){
console.log(e)
},
fail:function(e){
console.log(e)
},
complete:function(e){
console.log(e)
}
});
另外还一个问题就是真机小程序中不支持 new TextDecoder()对象,函数,解决办法:
function decodeUTF8(arr) {
var str = '';
for (var i = 0; i < arr.length; i++) {
str += String.fromCharCode(arr[i]);
}
return decodeURIComponent(escape(str));
}
console.log(decodeUTF8([230, 177, 137, 229, 173, 151]));
以上两个问题都是微信开发者工具与真机环境不一致的锅。
参考文章:
Uint8Array 拷贝操作的坑(buffer)
ie,TextDecoder.decode()函数不可用,fromCharCode输出中文乱码问题
网友评论