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, 2), 16);
if (v) str += String.fromCharCode(v);
}
return str;
}
请注意,您的充满 0x00 的字符串仍可能在其他上下文中使用,但 Chrome 无法提醒它。你不应该使用这种字符串。
关于javascript - javascript中十六进制转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13697829/