post - Does PHP automatically do urldecode() on $_POST?

one text

Solution:

Yes, all the parameters you access via $_GET and $_POST are decoded.

The reason the urldecode() documentation doesn't mention $_POST is because the POST data might not be URL-encoded in the first place. It depends on whether the POST data is submitted in application/x-www-form-urlencoded format or multipart/form-data format.

But all this is transparent to the application.

The documentation of does mention this explicitly, though.

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

Source