diff --git a/modules/utils/Path.js b/modules/utils/Path.js index 6641928596..95c320e852 100644 --- a/modules/utils/Path.js +++ b/modules/utils/Path.js @@ -133,7 +133,7 @@ var Path = { var queryString = qs.stringify(query, { indices: false }); if (queryString) - return Path.withoutQuery(path) + '?' + decodeURIComponent(queryString); + return Path.withoutQuery(path) + '?' + queryString; return path; }, diff --git a/modules/utils/__tests__/Path-test.js b/modules/utils/__tests__/Path-test.js index 92ba633afd..25cdfbac64 100644 --- a/modules/utils/__tests__/Path-test.js +++ b/modules/utils/__tests__/Path-test.js @@ -318,6 +318,10 @@ describe('Path.withQuery', function () { it('merges two query strings', function () { expect(Path.withQuery('/path?a=b', { c: [ 'd', 'e' ] })).toEqual('/path?a=b&c=d&c=e'); }); + + it('handles special characters', function () { + expect(Path.withQuery('/path?a=b', { c: [ 'd#e', 'f&a=i#j+k' ] })).toEqual('/path?a=b&c=d%23e&c=f%26a%3Di%23j%2Bk'); + }); }); describe('Path.normalize', function () {