javascript - javascript中十六进制转字符串

标签 javascript

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/

相关文章:

javascript - 哪种方式最适合为每个访问者创建公共(public)变量?

javascript - 可以更改背景颜色 onClick,然后在一秒钟后自动变回吗?

javascript - 将鼠标悬停在图像的一个点上,文本会出现在侧面

javascript - Safari 原生代码

javascript - ng-repeat 中的 AngularJS "headers"

javascript - 在滚动部分的末尾添加动画

javascript - 打开 react 应用程序应重定向到默认登录页面

javascript - 如何动态设置 md-autocomplete 的必填字段

javascript - promise 链中的所有内容都必须是 promise 吗?

javascript - 在组件挂载之前调用 React Element 上的函数