diff --git a/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php b/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php
index 85159927b9071e3b85bdb36e7360b6c15d5d26f5..9728458357b7e15b9000de9e16d92458d8fb37cf 100644
--- a/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php
+++ b/typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php
@@ -324,7 +324,7 @@ class ShortcutToolbarItem implements ToolbarItemInterface
                 $module = $returnUrlParameters['M'];
                 $returnUrl = BackendUtility::getModuleUrl($module, $returnUrlParameters);
                 $parameters['returnUrl'] = $returnUrl;
-                $url = $parsedUrl['path'] . '?' . http_build_query($parameters);
+                $url = $parsedUrl['path'] . '?' . http_build_query($parameters, '', '&', PHP_QUERY_RFC3986);
             }
         }
 
diff --git a/typo3/sysext/core/Classes/LinkHandling/PageLinkHandler.php b/typo3/sysext/core/Classes/LinkHandling/PageLinkHandler.php
index 3c0177c0285150ea57da3377c84e01570f4c6666..a7ee98d0bb4cf89f1eb085a2e99ecc7f24b9e103 100644
--- a/typo3/sysext/core/Classes/LinkHandling/PageLinkHandler.php
+++ b/typo3/sysext/core/Classes/LinkHandling/PageLinkHandler.php
@@ -77,7 +77,7 @@ class PageLinkHandler implements LinkHandlingInterface
             unset($data['type']);
         }
         if (!empty($data)) {
-            $result['parameters'] = http_build_query($data);
+            $result['parameters'] = http_build_query($data, '', '&', PHP_QUERY_RFC3986);
         }
         if (empty($result)) {
             $result['pageuid'] = 'current';
diff --git a/typo3/sysext/core/Classes/Resource/ResourceStorage.php b/typo3/sysext/core/Classes/Resource/ResourceStorage.php
index a4575fc7e777e90cb359594714e1a683ebfa878c..8a1be9f12396aa9af5845c22e4bba0b5d2476b48 100644
--- a/typo3/sysext/core/Classes/Resource/ResourceStorage.php
+++ b/typo3/sysext/core/Classes/Resource/ResourceStorage.php
@@ -1294,7 +1294,7 @@ class ResourceStorage implements ResourceStorageInterface
                     }
 
                     $queryParameterArray['token'] = GeneralUtility::hmac(implode('|', $queryParameterArray), 'resourceStorageDumpFile');
-                    $publicUrl = 'index.php?' . str_replace('+', '%20', http_build_query($queryParameterArray));
+                    $publicUrl = 'index.php?' . http_build_query($queryParameterArray, '', '&', PHP_QUERY_RFC3986);
                 }
 
                 // If requested, make the path relative to the current script in order to make it possible