diff --git a/modules/@angular/router/src/url_tree.ts b/modules/@angular/router/src/url_tree.ts index f6e44a301a9c3..5b7358d31fe51 100644 --- a/modules/@angular/router/src/url_tree.ts +++ b/modules/@angular/router/src/url_tree.ts @@ -182,9 +182,8 @@ export class DefaultUrlSerializer implements UrlSerializer { serialize(tree: UrlTree): string { const segment = `/${serializeSegment(tree.root, true)}`; const query = serializeQueryParams(tree.queryParams); - const fragment = tree.fragment !== null && tree.fragment !== undefined ? - `#${encodeURIComponent(tree.fragment)}` : - ''; + const fragment = + tree.fragment !== null && tree.fragment !== undefined ? `#${encodeURI(tree.fragment)}` : ''; return `${segment}${query}${fragment}`; } } @@ -371,7 +370,7 @@ class UrlParser { parseFragment(): string { if (this.peekStartsWith('#')) { - return decode(this.remaining.substring(1)); + return decodeURI(this.remaining.substring(1)); } else { return null; } diff --git a/modules/@angular/router/test/url_serializer.spec.ts b/modules/@angular/router/test/url_serializer.spec.ts index 2ac54115548ba..61312571b4600 100644 --- a/modules/@angular/router/test/url_serializer.spec.ts +++ b/modules/@angular/router/test/url_serializer.spec.ts @@ -207,10 +207,10 @@ describe('url serializer', () => { }); it('should encode/decode fragment', () => { - const u = `/one#${encode("one two")}`; + const u = `/one#${encodeURI("one two=three four")}`; const tree = url.parse(u); - expect(tree.fragment).toEqual('one two'); + expect(tree.fragment).toEqual('one two=three four'); expect(url.serialize(tree)).toEqual(u); }); });