IC卡读卡器web插件在参数传递过程中很多地方都是用字符串,普通字符串和HEX字符串。普通字符串就是一般的文本,支持英文,数字和中文,使用起来非常方便。 但是有很多地方使用的是HEX字符串,HEX字符串就是将一个BYTE数组直接展现为一个字符串,例如数组[0x01,0x02,0xAA,0xBB],我们将其作为HEX字符串显示为0102AABB, 每个字节为2个字符。这样展现更直观。
那么HEX字符串和byte数组之间该如何转换呢?
一、byte数组转换为HEX字符串
function bytestostr(bytes)
{
let str=“”;
for(let i=0;i let k=bytes[i].toString(16);
if(k.length==1)k=“0”+k; //为了保证0-F这些数字对齐,我们需要在前面补0
str+=k;
}
return str;
}
代码很少,我们来执行下看看
let bytes=new Uint8Array(8);
for(let i=0;i let str = bytestostr(bytes);
console.log(str);
NFC读写器web插件数组转hex字符串
二、HEX字符串转换byte数组
function strtobytes(hexstr)
{
let len = hexstr.length/2;//取得字符串的长度
let bytes=new Uint8Array(len);//初始化数组
let str=“”;
for(let i=0;i bytes[i] = parseInt(hexstr.substring(i2,i2+2),16);//按照每2位为一个字节来转换
}
return bytes;
}
同样来测试看看
var str=“AABBCCDD”;
let bytes=strtobytes(str);
console.log(bytes);