Protocol.strdecode = function(buffer) { console.log(buffer); var bytes = new ByteArray(buffer); var array = []; var offset = 0; var charCode = 0; var end = bytes.length; while(offset < end){ if(bytes[offset] < 128){ charCode = bytes[offset]; offset += 1; }else if(bytes[offset] < 224){ charCode = ((bytes[offset] & 0x3f)<<6) + (bytes[offset+1] & 0x3f); offset += 2; }else{ charCode = ((bytes[offset] & 0x0f)<<12) + ((bytes[offset+1] & 0x3f)<<6) + (bytes[offset+2] & 0x3f); offset += 3; } array.push(charCode); } var res = ''; var chunk = 8 * 1024; var i; for (i = 0; i < array.length / chunk; i++) { res += String.fromCharCode.apply(null, array.slice(i * chunk, (i + 1) * chunk)); } res += String.fromCharCode.apply(null, array.slice(i * chunk)); console.log('protocol strdecode' + res); return res; };
时间: 2024-04-27 15:23:08 浏览: 114
完整详细版Python全套教学课件 第02节 内置数据结构04 bytes和bytearray.pptx
这段代码是用于将一个字节流转换为字符串的函数。它将输入的字节流转换为一个整数数组,然后将整数数组分块,每块大小为8KB,依次将每块中的整数转换为对应的Unicode字符,最终将所有的字符拼接成一个字符串并返回。在转换整数数组时,它采用了UTF-8编码的方式,根据UTF-8的规则来解析字节流中的每个字节,将其转换为对应的Unicode编码。
阅读全文