在服务器上:
Browser Url--->http://www.mysite.com/?email=external%2Buser%40gmail.com
Email passed in browser--->external%2Buser%40gmail.com
Email After Encode--->external%5Euser%40gmail.com /* using urlencode function */
Email After Decode--->external^user@gmail.com /* using urldecode function */
在Localhost上:
Browser Url--->http://localhost/test.php?email=external%2Buser%40gmail.com
Email passed in browser--->external%2Buser%40gmail.com
Email After Encode--->external%2Buser%40gmail.com /* using urlencode function */
Email After Decode--->external+user@gmail.com /* using urldecode function */
在上面的代码中,我不知道为什么服务器结果与localhost不同。服务器%2B(+)
上的%5E(^)
转换为urlencode
。我想要与localhost相同的结果。请帮帮我。
答案 0 :(得分:2)
您最好使用rawurldecode()
代替urldecode()
和rawurlencode()
代替urlencode()
。
答案 1 :(得分:0)
这最有可能是server
和localhost
尝试将它们转换为common character set
urlencode( utf8_decode($strContent) );