belun.app Блог EN

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-кодирование

  1. Значения строки запроса: ?q=привет мир должно быть ?q=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%BC%D0%B8%D1%80.
  2. Сегменты пути со специальными символами: файл с именем отчёт 2026.pdf в URL должен быть закодирован.
  3. Вызовы API со сложными значениями: встраивание URL в качестве параметра запроса требует полного кодирования внутреннего URL.
  4. Букмарклеты и javascript: URL: любое динамическое значение должно быть закодировано перед вставкой.

Отладка закодированных URL

Когда вы получаете URL вида https://api.example.com/search?q=%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82, декодируйте его для чтения исходного запроса. Наш URL-декодировщик делает это одним кликом.


Попробуйте URL-кодировщик и декодировщик — кодируйте или декодируйте любую строку мгновенно, бесплатно, без отправки данных с устройства.

Попробуйте инструмент

URL-кодировщик / декодировщик →