它们之间的区别在于PHP的urlencode使用+而不是%20对空格进行编码。
在这两种语言中做同样事情的函数是什么?
发布于 2011-09-04 23:47:24
在PHP中使用rawurlencode代替urlencode。
发布于 2011-09-04 23:52:46
在php自己的文档rawurlencode上点击这个链接
rawurlencode会做到这一点的,链接是供参考的。
发布于 2019-01-10 11:20:21
实际上,即使使用JavaScript encodeURIComponent和PHP rawurlencode,它们也不完全相同,例如'(‘字符,JavaScript encodeURIComponent不会转换它,而PHP rawurlencode会将它转换为%28。经过一些实验和其他人的提示,比如这个问题another Stackoverflow question。
我找到了终极解决方案here。
您所需要做的就是使用下面的代码
function fixedEncodeURIComponent(str) {
return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
return '%' + c.charCodeAt(0).toString(16);
});
}它们将被完全相同的现在,例如
fixedEncodeURIComponent(yourUrl) (JavaScript) = (PHP) rawurlencode(yourUrl)解码没有问题,您可以为JavaScript使用decodeURIComponent(),为PHP使用rawurldecode
https://stackoverflow.com/questions/7300328
复制相似问题