十六进制转中文

思路:

1.十六进制转Byte;

2.byte转Unit8Array;

3.Unit8Array转TextDecoder,由于TextDecoder是谷歌浏览器的内置方法,所以在谷歌浏览器下可以直接转为中文。但是在其他浏览器下却无法识别TextDecoder,只要引入一个第三方库就可以解决兼容性了。

第三方库的地址:https://github.com/inexorabletash/text-encoding

在项目里引入即可:

<script type="text/javascript" src="../encoding-indexes.js"></script>
<script type="text/javascript" src="../encoding.js"></script>

完整代码如下:

//十六进制转byte
function stringToByte(str) { var pos = 0; var len = str.length; if(len % 2 != 0) { return null; } len /= 2; var hexA = new Array(); for(var i = 0; i < len; i++) { var s = str.substr(pos, 2); var v = parseInt(s, 16); hexA.push(v); pos += 2; } return hexA; } var str2 = stringToByte("b9f3");
//byte转Unit8Array var arr = new Uint8Array(str2);
//Unit8Array转TextDecoder var str = new TextDecoder('gbk').decode(arr); alert(str);

  

posted @ 2017-05-12 10:25  阿菜的园子  阅读(807)  评论(0)    收藏  举报