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


Encoded JQuery Url not decoding correctly in PHP

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

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

我发现 加号符号正在被解码为下划线 ('_') .对于 + 和 %20 都是如此。有什么办法吗?这似乎是意外的行为。

代码示例的价值:

阿贾克斯:

$.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"}

小提琴手数据发布:

Veh+%23=6

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

请参阅文档中的此处

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

反正我也不知道。

另请参阅此堆栈溢出问题

让 PHP 停止替换 $_GET 或 $_POST 数组中的 '." 字符?

注意:

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

(php.net - 外部变量)