diff --git a/core/lib/Drupal/Core/Routing/UrlGenerator.php b/core/lib/Drupal/Core/Routing/UrlGenerator.php index c9521ed..9b7021b 100644 --- a/core/lib/Drupal/Core/Routing/UrlGenerator.php +++ b/core/lib/Drupal/Core/Routing/UrlGenerator.php @@ -235,8 +235,10 @@ protected function doGenerate(array $variables, array $defaults, array $tokens, // Add a query string if needed, including extra parameters. $query_params += array_diff_key($parameters, $variables, $defaults); - if ($query_params && $query = UrlHelper::buildQuery($query_params)) { - $url .= '?' . $query; + if ($query_params && $query = http_build_query($query_params, '', '&')) { + // "/" and "?" can be left decoded for better user experience, see + // http://tools.ietf.org/html/rfc3986#section-3.4 + $url .= '?'.strtr($query, array('%2F' => '/')); } return $url;