PHP:将string中的空格转换为%20?

如何将string中的空格转换为%20

这是我的尝试:

 $str = "What happens here?"; echo urlencode($str); 

输出是"What+happens+here%3F" ,所以空格不表示为%20

我究竟做错了什么?

改用rawurlencode函数。

加号是URL参数中空格字符的历史编码,如urlencode()函数的帮助中所述。

同一页面包含您需要的答案 – 使用rawurlencode()代替RFC 3986兼容编码。

我相信,如果你需要使用%20变体,你可以使用rawurlencode()