JavaScript encodeURIComponent与PHP urlencode

时间:2011-09-04 15:43:30

标签: php javascript urlencode

它们之间的区别在于PHP urlencode使用+代替%20来编码空格?

对这两种语言执行相同操作的功能有哪些?

3 个答案:

答案 0 :(得分:15)

在PHP中使用rawurlencode代替urlencode

答案 1 :(得分:1)

在php自己的文档中{{3p>

rawurlencode会做到这一点,链接仅供参考。

答案 2 :(得分:0)

实际上,即使使用JavaScript encodeURIComponent和PHP rawurlencode,它们也不完全相同,例如'('字符,JavaScript encodeURIComponent不会将其转换,但是PHP rawurlencode会将其转换为%28。其他诸如该问题another Stackoverflow question

我找到了最终的解决方案here

您需要做的就是使用添加以下代码

object

例如,它们现在完全相同相同

function fixedEncodeURIComponent(str) {
    return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
        return '%' + c.charCodeAt(0).toString(16);
    });
}

解码没问题,您可以使用JavaScript的解码URIComponent()和PHP的rawurldecode