十六进制、字符串互转

字符串转十六进制

function stringToHex(str) {
    var hex = "";
    for (var i = 0; i < str.length; i++) {
        hex += str.charCodeAt(i).toString(16);
    }
    return hex;
}

十六进制转字符串 方法一

function hexToString(hex,encoding) {
  var trimedStr = hex.trim();
  var rawStr = trimedStr.substr(0, 2).toLowerCase() === "0x" ? trimedStr.substr(2) : trimedStr;
  var len = rawStr.length;
  if (len % 2 !== 0) {
    alert("Illegal Format ASCII Code!");
    return "";
  }
  var curCharCode;
  var resultStr = [];
  for (var i = 0; i < len; i = i + 2) {
    curCharCode = parseInt(rawStr.substr(i, 2), 16);
    resultStr.push(curCharCode);
  }
  // encoding为空时默认为utf-8
  var bytesView = new Uint8Array(resultStr);
  var str = new TextDecoder(encoding).decode(bytesView);
  return str;
}

十六进制转字符串 方法二

function hexToString(hex) {
     var arr = hex.split("")
    var out = ""
    for (var i = 0; i < arr.length / 2; i++) {
        var tmp = "0x" + arr[i * 2] + arr[i * 2 + 1]
        var charValue = String.fromCharCode(tmp);
        out += charValue
    }
    return out;
}

你可能感兴趣的:(十六进制、字符串互转)