江辰

博客

16进制和字符串互转

发布于 # React

字符串转 16 进制

function strToHexCharCode(str) {
    if(str === '') return '';
    let hexCharCode = [];
    hexCharCode.push('0x');
    for(var i = 0; i < str.length; i++) {
        hexCharCode.push((str.charCodeAt(i)).toString(16));
    }
    return hexCharCode.join('');
}

16 进制转字符串

function hexCharCodeToStr(hexCharCodeStr) {
    const trimedStr = hexCharCodeStr.trim();
    const rawStr = trimedStr.substr(0, 2).toLowerCase() === '0x' ? trimedStr.substr(2) : trimedStr;
    const len = rawStr.length;
    if (len % 2 !== 0) {
        throw("Illegal Format ASCII Code!");
    }
    let curCharCode;
    let resultStr = [];
    for (let i = 0; i < len; i = i + 2) {
        curCharCode = parseInt(rawStr.substr(i, 2), 16);
        resultStr.push(String.fromCharCode(curCharCode));
    }
    return resultStr.join("");
}