function strToHexCharCode(str) {
if (str === "")
return "";
var hexCharCode = [];
for (var i = 0; i < str.length; i++) {
hexCharCode.push((str.charCodeAt(i)).toString(16));
}
return hexCharCode.join("");
}
function hexCharCodeToStr(hexCharCodeStr, type = 2) {
if (type != 2 && type != 4) {
alert("类型错误");
return "";
}
var trimedStr = hexCharCodeStr.trim();
var len = trimedStr.length;
if (len % 2 !== 0 && len % 4 !== 0) {
alert("数据应该是2或4的倍数");
return "";
}
var curCharCode;
var resultStr = [];
for (var i = 0; i < len; i = i + type) {
curCharCode = parseInt(trimedStr.substr(i, type), 16);
resultStr.push(String.fromCharCode(curCharCode));
}
return resultStr.join("");
}
console.log('英文字符串=>16进制英文', strToHexCharCode('中国'))
console.log('16进制英文=>英文字符串', hexCharCodeToStr('4e2d56fd', 4))
console.log('中文字符串=>16进制中文', strToHexCharCode('abc'))
console.log('16进制中文=>中文字符串', hexCharCodeToStr('616263', 2))
打印结果如下:
英文字符串=>16进制英文 4e2d56fd
16进制英文=>英文字符串 中国
中文字符串=>16进制中文 616263
16进制中文=>中文字符串 abc