Javascript PHP字符串正在将空格更改为+符号。需要解码以保留空格

Javascript PHP字符串正在将空格更改为+符号。需要解码以保留空格,javascript,php,redirect,urldecode,Javascript,Php,Redirect,Urldecode,我有下面的代码,它放置了一个会话代码3888,这样当用户brwosers到没有会话代码的URL时,他们就会被重定向。如果URL中有代码,页面将继续加载 问题在于,在输出javascript变量时,代码将我的URL空格更改为+符号: 例子: 这 非洲&品牌=三星&型号=S5 更改: 那么现在var var region= getURLParameter('region'); 打印为南非+非洲,而不是南非 要解码URL以保留空格吗 以下是PHP代码: <?php session_st

我有下面的代码,它放置了一个会话代码3888,这样当用户brwosers到没有会话代码的URL时,他们就会被重定向。如果URL中有代码,页面将继续加载

问题在于,在输出javascript变量时,代码将我的URL空格更改为+符号: 例子: 这 非洲&品牌=三星&型号=S5 更改:

那么现在var

var region= getURLParameter('region');
打印为南非+非洲,而不是南非

要解码URL以保留空格吗

以下是PHP代码:

 <?php 

session_start();

$self = "{$_SERVER['PHP_SELF']}?{$_SERVER['QUERY_STRING']}";

if(!empty($_GET['mine']) &&  $_GET['mine'] == "3888" )  {
    unset($_GET['mine']);
    $qs = http_build_query($_GET);
    $self = "{$_SERVER['PHP_SELF']}?{$qs}";
    $_SESSION['mine'] = 1;
   header("Location: $self");
    exit;
} elseif (!isset($_SESSION['mine'])) {
    header('Location: http://redirectedpage.com');
    exit;
}

session_unset();
    session_destroy();
    session_write_close();
?>
我已经将其作为javascript代码:

<script>
    function getURLParameter(name){return decodeURI( (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] || '' );}</script>
这似乎不能解决它。。。我可以在PHP代码中的某个地方使用urldecode吗?如果没有PHP代码,我所有的变量都可以完美地解释。

您可以使用JS的replace函数:

var region = region.replace("+", "%20");
更多信息请访问。

我找到了一个解决方案:


$self=str_replace+,$self

非常感谢您的回复!唯一的问题是我有一个带有多变量的大字符串,并且不是所有的都是通过javascript变量调用的。有些是使用如下代码输出的:document.writegetURLParameter'region'是否可以简单地从URL中删除所有+符号?