function hex2a(hex) { var str = ''; for (var i = 0; i < hex.length; i += 2) str += String.fromCharCode(parseInt(hex.substr(i,2),16)); return str; }
此功能在chrome中不起作用,但在mozila中工作正常.任何人都可以请帮助.
提前致谢
解决方法
从你的评论看来,你正在打电话
hex2a('000000000000000000000000000000314d464737');
并提醒结果.
你的问题是你正在构建一个以0x00开头的字符串.此代码通常用作以null结尾的字符串的字符串终止符.
开始时删除00:
hex2a('314d464737');
你可以像这样修复你的函数来跳过那些空的“字符”:
function hex2a(hex) { var str = ''; for (var i = 0; i < hex.length; i += 2) { var v = parseInt(hex.substr(i,16); if (v) str += String.fromCharCode(v); } return str; }
请注意,您的字符串0x00仍然可能在其他上下文中使用,但Chrome无法提醒它.你不应该使用这种字符串.