Manual:$wgFragmentMode

This array can contain 1 or 2 elements, each of them can be one of:
 * is modern HTML5 style encoding with minimal escaping. Allows to display Unicode characters in many browsers' address bars.
 * is old MediaWiki-style encoding, e.g. 啤酒 turns into .E5.95.A4.E9.85.92.
 * corresponds to the DEPRECATED  mode. DO NOT use it for anything but migration off that mode (see below).

The first element of this array specifies the primary mode of escaping IDs. This is what users will see when they e.g. follow an   to a section of a page.

The optional second element defines a fallback mode, useful for migrations. If present, it will direct MediaWiki to add empty  to every section with its id attribute set to fallback encoded title so that links using the previous encoding would still work.

Example: you want to migrate your wiki from 'legacy' to 'html5'.

On the first step, set this variable to [ 'legacy', 'html5' ]. After a while, when all caches (parser, HTTP, etc.) contain only pages generated with this setting, flip the value to <tvar|legacy-flip>[ 'html5', 'legacy' ]</>. This will result in all internal links being generated in the new encoding while old links (both external and cached internal) will still work. After a long time, you might want to ditch backwards compatibility and set it to <tvar|html5>[ 'html5' ]</>. After all, pages get edited, breaking incoming links no matter which fragment mode is used.