如何将“+”加号替换为其相应的网址编码“%2B”?

2022-08-30 14:52:45

我在将“+”号替换为其url编码字符串“%2B”时遇到问题。我该怎么做?

这是我尝试过的:

输入到文本框中的文本:

plus(+)

然后,我对字符串进行 urlen 编码:

$string = urlencode($string);

字符串现在如下所示:

plus%28+%29

我想让“+”urlencoded,否则当我urldecode()在浏览器中显示数据时,我最终会得到:

plus( ) 

因为 urldecode() 将 “+” 解释为空格。

我尝试使用php的str_replace(),但我不断得到一个“NULL”作为“$new_string”的值:

$new_string = str_replace('+', '%2B', $string);

有什么想法吗?

提前致谢!


答案 1

这很奇怪。当我使用时,我得到.确保您正确使用它。urlencodeplus(+)plus%28%2B%29

您也可以尝试使用rawulencode。它将空格编码为 而不是 。%20+


答案 2

这对我帮助了我:

function _rawurlencode($string) {
    $string = rawurlencode(str_replace('+','%2B',$string));
    return $string;
}

推荐