§

Введите текст для декодирования:

Введите URL-кодированный текст, который вы хотите декодировать. Инструмент преобразует процентно-кодированные символы обратно в их исходную форму.
§

Output

decoded

Декодирование URL — повседневная задача при разборе логов. Метрика Яндекс.Метрики сохраняет UTM-метки и поисковые фразы в процентно-кодированном виде, и без декодирования невозможно понять, по какому ключевому слову пришёл клиент из Яндекс.Директа. NGINX и Angie на бэкенде маркетплейсов Wildberries или Ozon пишут access-логи с закодированными путями, содержащими кириллицу. WAF от Curator или Servicepipe режут запросы с подозрительными %-последовательностями, и отладить блокировку можно только после декодирования. Параметры state в OAuth-flow с Госуслугами через ЕСИА, redirect_uri callbacks из VK ID и подписи СБП от Банка России разбираются в браузере локально — это особенно важно, когда токены нельзя пересылать внешним SaaS по требованиям 152-ФЗ.

Дополнительные параметры

Преобразовать + в пробелы

При включении символы + будут преобразованы в пробелы. Это полезно при декодировании параметров запроса.

Режим реального времени

При включении текст будет автоматически декодироваться по мере ввода.

Эти параметры помогают контролировать, как кодированные символы декодируются в ваших URL.

Что такое декодирование URL?

Декодирование URL обращает процентное кодирование вспять: оно читает escape-последовательности %XX в закодированном URL и возвращает им исходные символы. Именно так восстанавливается читаемая строка запроса, значение формы или сегмент пути из URL, которую браузер, API или строка журнала передали в закодированном виде.

Как работает декодирование URL?

Декодирование URL следует определённому процессу преобразования процентно-кодированных последовательностей обратно в их исходные символы:

  1. Входная строка сканируется на наличие процентно-кодированных escape-последовательностей (%XX)
  2. Каждый %XX преобразуется из двух шестнадцатеричных цифр обратно в исходное значение байта
  3. Последовательные декодированные байты собираются в символы UTF-8 (многобайтовая последовательность становится одним символом)
  4. В контексте строки запроса + декодируется в пробел (application/x-www-form-urlencoded), тогда как %2B остаётся литеральным +
  5. Незарезервированные символы и уже декодированный текст проходят без изменений

Зачем использовать URL-декодер?

  • Читаемый вывод: преобразуйте %20, %40 и %3D обратно в пробел, @ и =, чтобы понять, что на самом деле содержит URL
  • Международный текст: восстанавливайте символы с диакритикой и не-ASCII-символы из их UTF-8-байтовых последовательностей, чтобы %C3%A9 снова читался как é
  • Отладка: проверяйте реальные значения в строке запроса, redirect OAuth или payload вебхука, прежде чем действовать на их основе
  • Соответствие стандартам: декодируйте согласно RFC 3986 — тем же правилам, которым следуют браузеры и серверы, — чтобы видеть именно то, что видят они

Каковы распространённые применения декодирования URL?

Декодирование URL необходимо во многих сценариях веб-разработки:

  • Отправка форм: чтение исходных значений полей из GET- и POST-данных в формате application/x-www-form-urlencoded
  • Разработка API: распаковка процентно-закодированных параметров пути и строки запроса, поступающих на конечную точку API
  • Файловые системы: восстановление путей и имён файлов, которые были процентно-закодированы для передачи внутри URL
  • Отладка ссылок: декодирование общих или записанных в журнал URL для просмотра специальных символов и международного текста, которые они содержат

Как выглядит пример декодирования URL?

Вот несколько распространённых примеров декодирования URL: %20 (или +) превращается в пробел, %40 — в @, %23 — в #, %26 — в &, а %3D — в =. UTF-8-последовательность вида %C3%A9 становится международным символом é.

Что такое процентное кодирование?

Процентное кодирование — это механизм, определённый в RFC 3986 §2.1, для представления символов, которые внутри URI являются небезопасными или зарезервированными. Правило механическое: каждый байт, который не может появиться буквально, записывается как знак процента, за которым следуют две шестнадцатеричные цифры — форма %XX —, где XX — это значение байта. Символы вне ASCII, такие как é, сначала кодируются как их UTF-8 байтовая последовательность, а затем каждый байт кодируется процентным образом по отдельности. Разработчики сталкиваются с этим почти ежедневно: в строках запросов, при отправке форм, в URL обратного вызова OAuth, в параметрах пути REST API и везде, где URL должен переносить пунктуацию, пробелы или символы вне набора незарезервированных A–Z a–z 0–9 - _ . ~.

Как на самом деле работает декодирование %C3%A9 в é?

Возьмём закодированную строку запроса ?q=caf%C3%A9&lang=fr. Декодирование даёт ?q=café&lang=fr. Вот пошаговый разбор побайтово:

  • Ввод: ?q=caf%C3%A9&lang=fr
  • Вывод: ?q=café&lang=fr
  1. %C3 → байт 0xC3 (в двоичном 11000011) — ведущий байт 2-байтовой UTF-8 последовательности.
  2. %A9 → байт 0xA9 (в двоичном 10101001) — байт продолжения. Вместе C3 A9 — это UTF-8 кодировка кодовой точки U+00E9, то есть é.
  3. Символы ?, = и & остаются нетронутыми, потому что они структурные — они разделяют запрос и его пары ключ/значение. Литерал caf также проходит без изменений, поскольку строчные ASCII-буквы относятся к набору незарезервированных.

В чём разница между decodeURIComponent и decodeURI?

JavaScript предоставляет два встроенных декодера, и их путаница — одна из самых распространённых ошибок при обработке URL:

  • decodeURIComponent(str) декодирует каждую процентно-закодированную последовательность, включая зарезервированные символы, такие как &, =, ?, / и #. Используйте его на отдельных значениях строки запроса или сегментах пути — никогда на целом URL.
  • decodeURI(str) намеренно консервативен: он пропускает зарезервированные символы. Если передать ему %26, он вернёт буквальную строку %26, а не &. Он предназначен для целых URI, в которых вы хотите, чтобы структура пережила полный цикл.

Эмпирическое правило: если строка — это часть URL (один параметр, фрагмент, закодированное имя файла), используйте decodeURIComponent. Этот инструмент ведёт себя как decodeURIComponent — каждая последовательность %XX в вашем вводе декодируется, включая зарезервированные символы.

Декодирование URL — это способ прочитать, что она реально содержит. Вставьте закодированную строку выше, и каждая последовательность %XX превратится обратно в свой символ прямо в браузере: отлаживайте параметры запроса, проверяйте redirect OAuth или восстанавливайте имена файлов с диакритикой — ничего не отправляя на сервер.