URL-кодирование (процентное кодирование) — это процесс преобразования небезопасных символов в URL в формат %XX. URL могут содержать только небольшое подмножество ASCII-символов (буквы, цифры, -_.~), все остальные символы (включая китайский язык, пробелы, специальные символы) должны быть закодированы перед передачей в URL. Например, пробел кодируется как %20, китайский иероглиф «中» — как %E4%B8%AD.
**encodeURIComponent vs encodeURI**: Это две наиболее часто используемые функции кодирования. encodeURIComponent кодирует наиболее тщательно, включая разделители параметров, такие как &, =, ?, поэтому подходит для кодирования отдельных значений параметров. encodeURI сохраняет структуру URL (схема://, путь, /, ?, #), поэтому подходит для кодирования полных URL. Неправильное использование приводит к ошибкам парсинга параметров.
**RFC 3986 vs старые стандарты**: RFC 3986 рассматривает тильду ~ как безопасный символ, не требующий кодирования, в то время как ранние стандарты кодируют её как %7E. Использование RFC 3986 уменьшает ненужные экранирования, улучшает читаемость URL и позволяет избежать проблем с парсингом %7E на некоторых серверах.
**Режим Query Only**: Используется, когда вам нужно закодировать только значения параметров запроса в URL, не затрагивая имена ключей, знаки равенства и символы &. Например, ?name=张三 кодируется как ?name=%E5%BC%A0%E4%B8%89, сохраняя имена ключей читаемыми и кодируя только значения.
**Подсветка кодирования**: Подсвечивает в реальном времени символы в формате %XX янтарным цветом, чтобы пользователи сразу видели, какие символы были закодированы. Это помогает понять правила кодирования: буквы и цифры обычно являются безопасными символами, которые не кодируются, только китайский язык и специальные символы кодируются. Все вычисления выполняются локально в браузере, данные не загружаются.