When Chrome opens a URL with a fragment id, it decodes %xx and applies isomorphic-decode [1] to it, then tries to find an element with the decoding result as an ID in some cases. No other browsers do this, and it's not defined by the standard. For example, if a user opens example.com/#%F8%C0, Chrome 1. searches the page for an element with id="%F8%C0" 2. If it’s not found, it searches the page for an element with id="øÀ" [1] https://infra.spec.whatwg.org/#isomorphic-decode