Javascript的ArrayBuffer从Utf8ArrayToString
2015-12-22 12:59
841 查看
由于项目需要,需要从一个已知的ArrayBuffer中读取出字符串,虽然环境是typescript,但最终还是用的js的代码改了一下解决,
有必要的话,可能还得decodeURIComponent一次
这方面找来的资料和网上的一些方法大多是Unicode编码处理,对UTF8无效,最后还是在一个角落里找来的解决,纪录一下,免得给忘记了
public Utf8ArrayToStr(array):string { var out,i,len,c; var char2,char3; 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; }
有必要的话,可能还得decodeURIComponent一次
var bufView = new Uint8Array(bin); var encodedString = this.Utf8ArrayToStr(bufView); encodedString = decodeURIComponent(encodedString);
这方面找来的资料和网上的一些方法大多是Unicode编码处理,对UTF8无效,最后还是在一个角落里找来的解决,纪录一下,免得给忘记了
相关文章推荐
- jsp中使用POST的方法在网页之间传递参数的简单方法
- js选项卡
- NSDictionary,JSON和XML互相转换
- JSP的include指令
- json时间转正常时间
- JS教程:String对象及其常用属性以及方法
- js知识总结
- JavaScript+CSS无限极分类效果完整实现方法
- js this指代详解与分享
- JS实现的表格操作类详解(添加,删除,排序,上移,下移)
- 百度JS模板引擎 baiduTemplate 1.0.6 版
- javascript 闭包的简单demo
- JSR 133
- 用js实现一个map对象
- JS控制按钮10秒钟后可用的方法
- JavaScript判断对象是否为数组
- JSON和JSONP的区别及使用方法
- a 标签中调用js的几种方法 文章摘自他人
- javascript 多图无缝切换
- 正确配置jstl的maven依赖