Кодовые точки URL-адреса (URL code points) — это буквенно-цифровые символы ASCII,
U+0021 (!),
U+0024 ($),
U+0026 (&),
U+0027 (‘),
U+0028 ЛЕВАЯ СКОБКА,
U+0029 ПРАВАЯ СКОБКА,
U+002A (*),
U+002B (+),
U+002C (,),
U+002D (-),
U+002E (.),
U+002F (/),
U+003A (:),
U+003B (;),
U+003D (=),
U+003F (?),
U+0040 (@),
U+005F (_),
U+007E (~)
и кодовые точки в диапазоне от U+00A0 до U+10FFFD включительно, исключая суррогаты и несимволы.
Кодовые точки больше, чем U+007F DELETE, будут преобразованы в байты с процентным кодированием с помощью синтаксического анализатора URL.
В HTML, когда кодировка документа является устаревшей кодировкой, кодовые точки в строке URL-запроса, которые выше, чем U+007F DELETE, будут преобразованы в процентно закодированные байты с использованием кодировки документа. Это может вызвать проблемы, если URL-адрес, работающий в одном документе, копируется в другой документ, использующий другую кодировку документа. Использование повсеместно кодировки UTF-8 решает эту проблему.
Например, рассмотрим этот HTML-документ:
<!doctype html> <meta charset="windows-1252"> <a href="?smörgåsbord">Test</a>
Поскольку кодировка документа — windows-1252, запрос URL ссылки будет «sm%F6rg%E5sbord». Если бы кодировка документа была UTF-8, это было бы «sm%C3%B6rg%C3%A5sbord».
Информационные ссылки
Стандарт URL — Определение «URL code points» — https://url.spec.whatwg.org/#url-code-points