1. 程式人生 > >Nodejs 中英文轉換為16進位制 再轉換回來

Nodejs 中英文轉換為16進位制 再轉換回來

function hexToStringWide(h) {
    var a = [];
    var i = 0;
    if (h.length % 4) {
        a.push(String.fromCharCode(parseInt(h.substring(0, 4), 16)));
        i = 4;
    }
    for (; i<h.length; i+=4) {
        a.push(String.fromCharCode(parseInt(h.substring(i, i+4), 16)));
    }
    return a.join('');
};

function stringToHexWide(s) {
    var result = '';
    for (var i=0; i<s.length; i++) {
        var b = s.charCodeAt(i);
        if(0<=b && b<16){
            result += '000'+b.toString(16)
        }
        if(16<=b && b<255){
            result += '00'+b.toString(16)
        }
        if(255<=b && b<4095){
            result += '0'+b.toString(16)
        }
        if(4095<=b && b<65535){
            result += b.toString(16)
        }
    }
    return result;
};

var name="ABCDEFG開心樹";
var strtohex=stringToHexWide(name);
var hextostr=hexToStringWide(strtohex);
console.log(name);
console.log(strtohex);
console.log(hextostr);