PHP 会自动对 $_POST 执行 urldecode() 吗?

Does PHP automatically do urldecode() on $_POST?

根据 http://php.net/manual/en/function.urldecode.php,PHP 在 $_GET$_REQUEST(包含 $_POST)上执行 urldecode()

但是直接调用$_POST是不是已经解码了?

是的,您通过 $_GET$_POST 访问的所有参数都已解码。

urldecode() 文档没有提到 $_POST 的原因是 POST 数据可能一开始就没有被 URL 编码。取决于POST数据是以application/x-www-form-urlencoded格式提交还是multipart/form-data格式提交。

但这一切对应用程序来说都是透明的。

$_GET 的文档确实明确提到了这一点。

Note:
The GET variables are passed through urldecode().