在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡安全/ 怎么將字符串轉(zhuǎn)為二進制數(shù)組?

怎么將字符串轉(zhuǎn)為二進制數(shù)組?

需要將字符串轉(zhuǎn)為二進制序列,由于new TextEncoder("utf-8").encode(str),不兼容IE瀏覽器,需尋找其他方法替代TextEncoder方法。

回答
編輯回答
九年囚

function stringToByte(str) {

    var bytes = new Array();  
    var len, c;  
    len = str.length;  
    for(var i = 0; i < len; i++) {  
        c = str.charCodeAt(i);  
        if(c >= 0x010000 && c <= 0x10FFFF) {  
            bytes.push(((c >> 18) & 0x07) | 0xF0);  
            bytes.push(((c >> 12) & 0x3F) | 0x80);  
            bytes.push(((c >> 6) & 0x3F) | 0x80);  
            bytes.push((c & 0x3F) | 0x80);  
        } else if(c >= 0x000800 && c <= 0x00FFFF) {  
            bytes.push(((c >> 12) & 0x0F) | 0xE0);  
            bytes.push(((c >> 6) & 0x3F) | 0x80);  
            bytes.push((c & 0x3F) | 0x80);  
        } else if(c >= 0x000080 && c <= 0x0007FF) {  
            bytes.push(((c >> 6) & 0x1F) | 0xC0);  
            bytes.push((c & 0x3F) | 0x80);  
        } else {  
            bytes.push(c & 0xFF);  
        }  
    }  
    return new Uint8Array(bytes);  


}  
2018年3月4日 01:55
編輯回答
貓館

不確定兼不兼容,好像涉及 ArrayBuffer 和 ES6的,IE 都不怎么兼容。。。

new Uint16Array([...str].map(v => v.codePointAt(0)))
2017年5月16日 01:31