首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php bin2hex()在javascript中解码回来

php bin2hex()在javascript中解码回来
EN

Stack Overflow用户
提问于 2015-05-19 06:32:12
回答 2查看 865关注 0票数 2

我有一个网址在数据库中,并将编码与php函数bin2hex()。我想把它解码回javascript。

这两个函数给出完全相同的输出。但是什么功能更好、更快、更可靠呢?因为它必须在所有台式机和移动设备上工作。

代码语言:javascript
复制
function first_HexToString(input) {
    var result = "";

    for(q = 0; q < input.length; q += 2) {
        result += '%' + input.substr(q,2);
    }

    return decodeURIComponent(result);
}

function second_HexToString(input) {
    var result = "";

    for(q = 0; q < input.length; q += 2) {
        result += String.fromCharCode(parseInt(input.substr(q,2),16));
    }

    return result;
}

url不是非常非常秘密,在Firebug或类似的东西中会显示得很简单,我的想法是可以对url进行编码。;-)

EN

回答 2

Stack Overflow用户

发布于 2015-05-19 06:43:55

在性能方面,我倾向于使用第一个函数,因为它的方法调用较少: input.length*3/2+1,而第二个函数使用的是input.length*2。

计算详情:

  • 第一个函数将执行3个函数调用:两个连接,每个迭代步骤一个substr(),我们在其中添加最终的decodeURIComponent()调用
  • 第二个函数将执行3个函数调用,外加一个连接,每个迭代步骤产生4个函数调用
  • 现在我们有str.length/2个迭代步骤,这给出了提到的结果
票数 0
EN

Stack Overflow用户

发布于 2015-05-19 20:05:23

如果decodeURIComponent()的性能可以忽略,那么这也是可能的。哈!

代码语言:javascript
复制
function third_HexToString(input) {
  return decodeURIComponent(input.replace(/(.{1,2})/g, "%$1"));
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30313817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档