RevealTheme logo

Кодировщик и декодировщик URL

Преобразует текст в безопасную для URL кодировку (процентное кодирование) и обратно. Полезно для строк запроса, перенаправлений и OAuth-потоков.

Что такое кодирование URL и когда оно вам нужно?

Кодирование URL (также называемое «процентным кодированием», описано в RFC 3986) — это процесс преобразования символов, имеющих особое значение в URL, или символов, которые попросту небезопасны в URL, в шестнадцатеричную escape-последовательность «%XX». Спецификация URL резервирует определённые символы со структурным значением: «?» начинает строку запроса, «#» начинает фрагмент, «&» разделяет параметры запроса, «/» разделяет сегменты пути и так далее. Если ввод пользователя содержит любой из этих символов, и вы вставляете его в URL как есть, парсер интерпретирует его неправильно. Кодирование URL предотвращает это, заменяя каждый зарезервированный или небезопасный символ его шестнадцатеричным представлением в байтах с префиксом «%». Пробел превращается в %20, «&» — в %26, «=» — в %3D. Символы не из набора ASCII (кириллица, китайские иероглифы, эмодзи) преобразуются в многобайтовые UTF-8 последовательности, причём каждый байт кодируется процентным способом. Браузеры обрабатывают это автоматически, когда вы щёлкаете по ссылке, но всякий раз, когда вы строите URL программно — создавая поисковый запрос, цель перенаправления, OAuth-обратный вызов или подпись вебхука — вы должны сначала закодировать значения, предоставленные пользователем. Этот инструмент использует те же функции encodeURIComponent / decodeURIComponent, которые использовал бы ваш код на JavaScript, поэтому поведение в точности совпадает с продакшеном.

Типичные сценарии использования

  • Кодируйте поисковые запросы пользователей перед добавлением их к поисковому URL (?q=user+input).

  • Безопасно передавайте параметр OAuth redirect_uri серверу авторизации.

  • Создавайте URL вебхуков, содержащие закодированную полезную нагрузку JSON в строке запроса.

  • Кодируйте URL 'returnTo', чтобы он сохранился при передаче через другие URL.

  • Декодируйте закодированные значения, которые вы видите в адресной строке браузера после отправки формы.

  • Проверяйте, как разбирается некорректный URL — закодируйте специальный символ и посмотрите, что произойдёт.

Часто задаваемые вопросы

Когда мне следует кодировать URL?
Всегда кодируйте значения, предоставленные пользователем, прежде чем помещать их в URL: параметры запроса, сегменты пути или фрагменты. Отсутствие кодирования — один из самых распространённых источников трудноуловимых ошибок: значение 'gatos & perros' ломает строку запроса, пока не будет закодировано как 'gatos%20%26%20perros'.
В чём разница между encodeURI и encodeURIComponent?
encodeURI предназначена для полных URL: она оставляет нетронутыми структурные символы вроде '/', '?', '&', '=', потому что они имеют значение в URL. encodeURIComponent предназначена для частей URL (значений запроса, сегментов пути): она кодирует всё, что не является буквенно-цифровым. Используйте encodeURIComponent для отдельных значений запроса; никогда не применяйте encodeURI к значению запроса, предоставленному пользователем (она не экранирует '&' и сломает вашу строку запроса).
Что такое URL-безопасный Base64 в сравнении с кодированием URL?
Это разные понятия. Кодирование URL (этот инструмент) посимвольно заменяет специальные символы. URL-безопасный Base64 — это вариант Base64, который использует '-' и '_' вместо '+' и '/', так что результат уже безопасен для URL без дополнительного кодирования.
Почему иногда '+' декодируется как пробел?
В application/x-www-form-urlencoded (отправка форм) '+' является сокращением для пробела. Большинство декодировщиков сохраняют это поведение. В современном разборе URI '%20' — это правильная кодировка пробела. decodeURIComponent обрабатывает '+' как литеральный '+'; используйте decodeURI или декодировщик форм, чтобы преобразовать '+' в пробел.
Как кодируются символы не из набора ASCII?
Сначала они преобразуются в байты UTF-8, а затем каждый байт кодируется процентным способом. Так, 'café' превращается в 'caf%C3%A9': 'é' — это два байта UTF-8 (0xC3 0xA9). Этот инструмент корректно обрабатывает UTF-8; некоторые старые инструменты кодируют с помощью Latin-1, что даёт другой результат.
То же ли самое кодирование URL, что и кодирование HTML-сущностей?
Нет. Кодирование URL (%XX) экранирует символы для URL. Кодирование HTML-сущностей (&, <) экранирует символы для HTML-разметки. Контексты различны; кодирование одного в контексте другого — распространённая ошибка, ведущая к XSS.

Похожие инструменты

Декодировщик JWT

Мгновенно декодирует JSON Web Tokens (JWT). Работает в вашем браузере: токены никогда не покидают ваше устройство, поэтому им безопасно пользоваться с продакшен-секретами.

Форматировщик и валидатор JSON

Форматируйте, проверяйте и минифицируйте JSON онлайн. Работает полностью в вашем браузере: ваши данные никогда не покидают ваше устройство.

Форматировщик XML

Форматирует и делает читаемыми документы XML. Полезно для SOAP, карт сайта, RSS-лент и файлов конфигурации.

Кодировщик и декодировщик Base64

Кодирует строки в Base64 или декодирует Base64 в текст. Уважает вашу конфиденциальность: всё выполняется в вашем браузере.

Кодировщик и декодировщик HTML-сущностей

Преобразует специальные символы в HTML-сущности (&, < и т. д.) и обратно. Полезно для безопасной вставки текста в HTML.

Минификатор CSS

Удаляет комментарии, пробелы и ненужные символы из CSS, чтобы уменьшить размер файла.

Подпишитесь на обновления

Мы не продаем ваш адрес электронной почты. Мы не рассылаем спам.

© 2026 RevealTheme. All rights reserved.