编码的JQuery Url在PHP中无法正确解码

时间:2013-10-03 22:04:07

标签: php jquery

我正在使用.ajax()向服务器发送请求。服务器正在使用PHP来处理请求。

根据php urldecode,$ _REQUEST已经解码,Plus符号('+')被解码为空格字符。

我发现Plus符号正被解码为下划线('_')。对于+和%20都是如此。有没有办法解决?这似乎是意想不到的行为。

代码样本的价值:

AJAX:

$.ajax({
       url: 'mySite.php',
       method: 'POST',
       data: $(this).serialize()
    });

PHP:

$myVar = "Veh #";
if (isset($_REQUEST["$myVar"])){
//do stuff
}
//to see request
var_dump($_REQUEST);

var_dump给出

array(1){[“Veh _#”] => string(1)“6”}

我希望是

array(1){[“Veh#”] => string(1)“6”}

fiddler数据发布:

VEH +%23 = 6

2 个答案:

答案 0 :(得分:1)

我可能不正确,因为我还在学习PHP,但我认为这是在PHP中使用GET和POST时的标准行为。

请参阅文档

http://www.php.net/manual/en/language.variables.external.php

我不知道这件事。

也看到这个堆栈溢出问题

Get PHP to stop replacing '.' characters in $_GET or $_POST arrays?

答案 1 :(得分:0)

  

注意:

     

变量名中的点和空格将转换为下划线。

php.net - external variables