如何在JavaScript中将Hex转换为ASCII?
如何从Hex
string转换为ASCII
string在JavaScript中?
例如:
32343630它将是2460
function hex2a(hexx) { var hex = hexx.toString();//force conversion var str = ''; for (var i = 0; i < hex.length; i += 2) str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); return str; } hex2a('32343630'); // returns '2460'
为了完整起见,相反的function:
function a2hex(str) { var arr = []; for (var i = 0, l = str.length; i < l; i ++) { var hex = Number(str.charCodeAt(i)).toString(16); arr.push(hex); } return arr.join(''); } a2hex('2460'); //returns 32343630
你可以用这个..
var asciiVal = "32343630".match(/.{1,2}/g).map(function(v){ return String.fromCharCode(parseInt(v, 16)); }).join(''); document.write(asciiVal);
另一种方法(如果您使用Node.js):
var input = '32343630'; var output = new Buffer(input, 'hex'); log(input + " -> " + output); // Result: 32343630 -> 2460
我发现如果你必须处理02(STX)或03(ETX)这样的控制字符,上面的解决scheme将不起作用,10以下的任何东西都会被读作一个数字,并且抛弃所有的东西。 我遇到了这个问题,试图通过串行通信parsing。 所以,我第一次接收到的hexstring,并把它放在一个缓冲区对象,然后将hexstring转换为像这样的string数组
buf = Buffer.from(data, 'hex'); l = Buffer.byteLength(buf,'hex'); for (i=0; i<l; i++){ char = buf.toString('hex', i, i+1); msgArray.push(char);