URL-кодирование: когда, зачем и как кодировать URL
Понятное руководство по процентному кодированию — что это такое, когда оно нужно и как бесплатно кодировать и декодировать URL прямо в браузере.
Если вы когда-нибудь видели %20 в URL там, где должен быть пробел, вы сталкивались с процентным кодированием. Это то, что разработчики используют ежедневно, не всегда понимая, когда и почему это необходимо. Вот полная картина.
Что такое URL-кодирование?
URL могут содержать только ограниченный набор ASCII-символов. Пробелы, амперсанды, знаки равенства, слэши и символы не-ASCII (например, ü, 中 или 😀) недопустимы в необработанных URL. Процентное кодирование преобразует эти символы в безопасный формат: %, за которым следует двузначный шестнадцатеричный код байта.
Примеры:
- Пробел →
%20 &→%26=→%3D/→%2Fа(U+0430, кириллица) →%D0%B0(UTF-8, два байта)- 😀 (U+1F600) →
%F0%9F%98%80(четыре байта)
encodeURI vs encodeURIComponent
Это различие, на котором спотыкается большинство разработчиков.
encodeURI кодирует полный URL. Он оставляет структурные символы, такие как ?, &, =, /, #, нетронутыми, поскольку они являются значимым синтаксисом URL.
encodeURIComponent кодирует один компонент — значение параметра запроса, сегмент пути, фрагмент. Он также кодирует ?, &, = и /, потому что внутри компонента эти символы не имеют специального значения и нарушают структуру URL.
Практическое правило: используйте encodeURIComponent при кодировании значений, встраиваемых в URL. Используйте encodeURI только когда вы собрали полный URL и хотите сделать его безопасным в целом.
Наш URL-кодировщик использует encodeURIComponent по умолчанию, что правильно для наиболее распространённого случая: кодирования значения строки запроса.
Когда требуется URL-кодирование
- Значения строки запроса:
?q=привет мирдолжно быть?q=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%BC%D0%B8%D1%80. - Сегменты пути со специальными символами: файл с именем
отчёт 2026.pdfв URL должен быть закодирован. - Вызовы API со сложными значениями: встраивание URL в качестве параметра запроса требует полного кодирования внутреннего URL.
- Букмарклеты и
javascript:URL: любое динамическое значение должно быть закодировано перед вставкой.
Отладка закодированных URL
Когда вы получаете URL вида https://api.example.com/search?q=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82, декодируйте его для чтения исходного запроса. Наш URL-декодировщик делает это одним кликом.
Попробуйте URL-кодировщик и декодировщик — кодируйте или декодируйте любую строку мгновенно, бесплатно, без отправки данных с устройства.