JavaScript编码组件与PHP ulrencode
它们之间的区别在于PHP的JavaScript编码组件与PHP ulrencode,php,javascript,urlencode,Php,Javascript,Urlencode,它们之间的区别在于PHP的urlencode使用+编码空格,而不是%20 对这两种语言做相同事情的函数有哪些 在PHP中使用rawurlencode而不是urlencode。在PHP自己的文档中点击此链接 rawurlencode将实现此功能,该链接仅供参考。实际上,即使使用JavaScript encodeURIComponent和PHP rawurlencode,它们也不完全相同,例如('字符,JavaScript encodeURIComponent不会将其转换,但PHP rawurlen
urlencode
使用+
编码空格,而不是%20
对这两种语言做相同事情的函数有哪些 在PHP中使用
rawurlencode
而不是urlencode
。在PHP自己的文档中点击此链接
rawurlencode
将实现此功能,该链接仅供参考。实际上,即使使用JavaScript encodeURIComponent和PHP rawurlencode,它们也不完全相同,例如('字符,JavaScript encodeURIComponent不会将其转换,但PHP rawurlencode会将其转换为%28。经过一些实验和其他人的提示后,例如这个问题
我找到了最终的解决办法
您所需要做的就是使用add下面的代码
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}
例如,现在它们将完全相同
fixedEncodeURIComponent(yourUrl) (JavaScript) = (PHP) rawurlencode(yourUrl)
解码没有问题,您可以使用decodeURIComponent()对于JavaScript和rawurldecode for PHP来说,这真的是这样吗?PHP文档让我很困惑…它说,
rawurlencode
是用于/../,而urlencode
是用于/?…这可能很有用:。这是一个在线工具,可以让您查看两种语言中的每个函数如何编码URI。rawurlencode
和encodeURI组件
产生了相同的输出。