php bin2hex()在javascript中解码

时间:2015-05-18 22:32:12

标签: javascript php hex ascii

我在数据库中有一个url,并将使用php函数bin2hex()对其进行编码。我想在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;
}

诗;网址不是很秘密,在Firebug或类似的东西中显示简单,我认为可以对网址进行编码。 ; - )

2 个答案:

答案 0 :(得分:0)

decodeURIComponent()的性能是否可以忽略不计,这也是可能的。哈!

function third_HexToString(input) {
  return decodeURIComponent(input.replace(/(.{1,2})/g, "%$1"));
}

答案 1 :(得分:-1)

性能方面,我会使用第一个函数,因为它有更少的方法调用:input.length * 3/2 + 1,而input.length * 2则是第二个函数。

计算详情:

  • 第一个函数将执行3个函数调用:两个连接,每个迭代步骤一个substr(),我们添加最终的decodeURIComponent()调用
  • 第二个函数将执行3个函数调用,加上一个串联,每个迭代步骤产生4个函数调用
  • 现在我们有str.length / 2次迭代步骤,它们给出了上述结果