问题
How can I convert spaces in string into %20?
Here is my attempt:
$str = "What happens here?";
echo urlencode($str);
The output is "What+happens+here%3F", so the spaces are not represented as %20.
What am I doing wrong?
回答1:
Use the rawurlencode function instead.
回答2:
The plus sign is the historic encoding for a space character in URL parameters, as documented in the help for the urlencode() function.
That same page contains the answer you need - use rawurlencode() instead to get RFC 3986 compatible encoding.
回答3:
I believe that, if you need to use the %20 variant, you could perhaps use rawurlencode().
来源:https://stackoverflow.com/questions/5572718/php-convert-spaces-in-string-into-20