8
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 中运行良好。谁能帮忙。

提前致谢

4

1 回答 1

10

从你的评论看来你在打电话

hex2a('000000000000000000000000000000314d464737');

并提醒结果。

您的问题是您正在构建一个以 0x00 开头的字符串。此代码通常用作以空字符结尾的字符串的字符串终止符。

删除00at start :

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 无法提醒它。你不应该使用这种字符串。

于 2012-12-04T07:41:34.823 回答