URL-декодирование (процентное декодирование) — это обратная операция URL-кодирования: оно преобразует процентно-закодированные последовательности обратно в исходные символы. Каждое вхождение знака процента, за которым следуют две шестнадцатеричные цифры (%XX), заменяется байтом, который обозначает XX. Несколько последовательных закодированных байтов рекомбинируются для восстановления исходного символа UTF-8.
URL-декодирование — повседневная задача для разработчиков, работающих с API, веб-скрапингом, анализом логов и процессами аутентификации. Закодированные URL понятны машинам, но непрозрачны для людей — их декодирование мгновенно раскрывает реальные пути, поисковые запросы, целевые адреса редиректов и значения параметров.
Зачем использовать этот инструмент?
Быстро разберитесь с любым процентно-закодированным URL или строкой запроса — без консоли браузера, ничего не отправляется на сервер.
⚡
Мгновенное декодирование
Вставьте любой закодированный URL или параметр и сразу увидите читаемую версию. Отлично подходит для отладки API-запросов и файлов логов.
🛡️
Восстановление после ошибок
При необходимости использует устаревший unescape() для входных данных, содержащих старые Latin-1 процентно-закодированные символы, которые вызвали бы ошибку в decodeURIComponent.
🔒
Только на стороне клиента
Всё декодирование выполняется локально в вашем браузере. Токены, пароли и приватные параметры запроса никогда не покидают ваше устройство.
🔁
Полная поддержка URL
Декодируйте полные URL или отдельные значения параметров. Инструмент обрабатывает как стандартные пробелы %20, так и сохраняет знаки + как буквальные символы плюса.
Как использовать этот онлайн-декодировщик URL
Без регистрации, без установки. Вставьте строку с процентным кодированием в поле ввода — и декодированный результат появится мгновенно. Всё работает в вашем браузере — данные никогда не покидают ваше устройство.
1
Вставьте закодированный URL или строку
Скопируйте любую строку с процентным кодированием — URL из адресной строки, параметр запроса из серверных логов, ответ API или цель перенаправления — и вставьте в поле ввода.
2
Автоматическое определение формата
Декодировщик автоматически обрабатывает как %XX процентное кодирование, так и + в качестве пробела (application/x-www-form-urlencoded). Не нужно указывать формат кодирования вручную.
3
Проверьте декодированный результат
Читаемый текст появляется мгновенно. Если входные данные содержали вложенное кодирование (двойное кодирование), декодировщик разбирает по одному уровню за раз. При некорректных последовательностях %XX отображается ошибка.
4
Скопируйте или повторно закодируйте
Нажмите Копировать, чтобы скопировать декодированную строку. Нужно закодировать её заново с другими параметрами? Перейдите к инструменту URL Encode одним кликом.
Как работает декодирование
Декодер сканирует входные данные в поисках последовательностей %, преобразует каждую двузначную шестнадцатеричную группу в значение байта, группирует последовательные байтовые последовательности вместе и интерпретирует их как UTF-8 для получения финальных символов Unicode.
Краткий справочник наиболее часто встречающихся процентно-закодированных последовательностей:
Закодировано
Символ
Где встречается
%20
space
path segments, query values
%2B
+
literal plus (not a space in query)
%2F
/
slash inside a path component
%3F
?
literal question mark in a value
%23
#
literal hash in a value
%26
&
literal ampersand in a value
%3D
=
literal equals sign in a value
%40
@
at sign in username / password
%3A
:
colon inside a path segment
%25
%
literal percent sign
%2C
,
comma in path or query
%5B
[
opening bracket
%5D
]
closing bracket
%7B
{
curly brace in template literals
%7D
}
curly brace in template literals
Распространённые сценарии использования
Отладка API-запросов
Скопируйте URL из сетевых логов DevTools браузера и декодируйте его, чтобы увидеть реальные значения параметров запроса — особенно полезно, когда автоматизированные инструменты или библиотеки закодировали параметры.
Чтение файлов логов
Журналы доступа веб-серверов и логи приложений хранят URL в закодированном виде. Декодируйте их, чтобы найти реальные запрошенные пути, поисковые запросы и значения параметров.
Анализ редиректов
OAuth-коллбэки, SSO-редиректы и URL с отслеживанием ссылок часто содержат сильно закодированные параметры redirect_uri или next. Декодируйте URL, чтобы отследить предполагаемое назначение.
Разбор полезных данных вебхуков
Тела вебхуков, отправленных как application/x-www-form-urlencoded (Stripe, Twilio, GitHub), приходят в виде процентно-закодированных строк. Декодируйте их, чтобы прочитать реальные значения полей.
Извлечение поисковых запросов
URL аналитики и заголовки referrer содержат исходный поисковый запрос пользователя, процентно-закодированный в параметре q=. Декодируйте, чтобы отобразить или проанализировать реальные поисковые запросы.
Обратный инжиниринг URL
При интеграции со сторонними API или при скрапинге встречающиеся URL часто содержат закодированные сегменты пути и параметры. Декодируйте их, чтобы понять структуру URL и воспроизвести запросы.
Распространённые ошибки
Наиболее частые ошибки при декодировании процентно-закодированных строк:
✕
Путаница между + и %20
В данных application/x-www-form-urlencoded (отправки HTML-форм) + обозначает пробел. Но в сыром URL-пути или в значении, закодированном с помощью encodeURIComponent, + является буквальным знаком плюса. decodeURIComponent не преобразует + в пробел — используйте URLSearchParams или unquote_plus для данных форм.
✕
Двойно закодированные строки
Если строка была закодирована дважды, однократное декодирование всё равно оставляет знаки процента: %2520 декодируется в %20, а не в пробел. Декодируйте второй раз, чтобы получить исходное значение. Обращайте на это внимание в логах, прокси и middleware, которые повторно кодируют уже закодированные данные.
✕
Некорректные процентные последовательности
Одиночный % или % за которым следуют не-шестнадцатеричные символы (например %GG или % 2) недействителен и вызовет URIError. Всегда проверяйте входные данные или оборачивайте декодирование в блок try/catch.
✕
Несоответствие кодировок (Latin-1 против UTF-8)
Старые системы (urlencode PHP, классический ASP) кодировали символы как байты Latin-1. Строка, закодированная как Latin-1, может некорректно декодироваться декодером UTF-8. Если вы видите искажённые символы, попробуйте путь через устаревший unescape() или определите исходную кодировку.
Примеры кода
Как декодировать URL-строки в популярных языках и средах:
JavaScript (browser / Node.js)
// Decode a percent-encoded component
decodeURIComponent('hello%20world%20%26%20more') // → "hello world & more"
// Decode a full URL (leaves structure characters encoded)
decodeURI('https://example.com/path?q=hello%20world') // → "https://example.com/path?q=hello world"
// Parse a query string (handles + as space automatically)
const params = new URLSearchParams('q=hello+world&lang=en')
params.get('q') // → "hello world"
const url = new URL('https://example.com/search?q=hello%20world%20%26%20more')
url.searchParams.get('q') // → "hello world & more"
url.pathname // → "/search"
CLI (bash)
# Decode with Python one-liner
python3 -c "from urllib.parse import unquote; print(unquote('hello%20world'))"
# Decode with Node.js
node -e "console.log(decodeURIComponent('hello%20world%20%26'))"
URL Decode vs. альтернативы
Несколько инструментов могут декодировать строки с процентным кодированием, но они различаются по ясности, конфиденциальности и удобству.
Этот инструмент
Работает в браузере, мгновенно, конфиденциально. Обрабатывает %XX кодирование, + как пробел, Unicode и некорректные последовательности. Данные не отправляются ни на один сервер.
Адресная строка браузера
Браузеры декодируют URL для отображения, но не всегда полностью — некоторые закодированные символы остаются видимыми в адресной строке. Не подходит для анализа отдельных значений параметров.
DevTools / curl -v
DevTools браузера и curl показывают исходные и декодированные URL в сетевых запросах. Полезно для отладки, но требует переключения между инструментами и знания, где искать.
Часто задаваемые вопросы
В чём разница между decodeURIComponent и decodeURI?
decodeURIComponent декодирует все процентно-закодированные последовательности, включая зарезервированные символы (%2F → /, %3F → ?, и т.д.). decodeURI декодирует только последовательности, которые не дадут символ с особым значением в URL — он оставляет %2F, %3F, %23 и другие структурные символы закодированными. Используйте decodeURIComponent для значений параметров; используйте decodeURI только когда у вас полный URL и вы хотите сохранить его структуру.
Почему я вижу URIError: malformed URI?
Эта ошибка от decodeURIComponent возникает, когда входные данные содержат % не за которым следуют две действительные шестнадцатеричные цифры, или когда многобайтовая последовательность UTF-8 неполна (например %E2 без последующего %82%AC). Удалите или экранируйте отдельные знаки процента перед декодированием.
Обрабатывает ли декодирование + как пробел?
Нет — decodeURIComponent трактует + как буквальный знак плюса, а не как пробел. Соглашение + → пробел применяется только к данным application/x-www-form-urlencoded (отправки HTML-форм). Для декодирования данных формы используйте URLSearchParams (браузер/Node) или urllib.parse.unquote_plus (Python).
Безопасно ли URL-декодирование на стороне клиента?
Да — URL-декодирование является чистым преобразованием без сетевых запросов. Все современные браузеры включают decodeURIComponent и decodeURI как нативные функции. Этот инструмент выполняет декодирование полностью в вашем браузере; никакие данные никуда не отправляются.
Как декодировать URL, который был закодирован несколько раз?
Декодируйте его несколько раз, пока вывод не стабилизируется (больше не будут разрешаться последовательности %). Это происходит, когда уже закодированный URL проходит через ещё один кодировщик. Каждый проход декодирования удаляет один уровень кодирования.
Что означает %XX?
Два символа после % — это шестнадцатеричные цифры, представляющие значение одного байта (00–FF). Для символов ASCII этот байт является ASCII-кодом символа: %41 = 65 = 'A'. Для символов не из ASCII несколько последовательностей %XX представляют байтовую последовательность UTF-8 символа: знак евро € — это %E2%82%AC (три байта: 0xE2, 0x82, 0xAC).
Какую кодировку использует браузер при отправке HTML-форм?
HTML-формы с method=GET добавляют поля к URL с кодировкой application/x-www-form-urlencoded: пробелы заменяются на + вместо %20, остальные спецсимволы кодируются в процентах. Опция + → пробел инструмента URL Decode обрабатывает этот формат. Формы с method=POST и enctype=application/x-www-form-urlencoded используют ту же схему в теле запроса.
Есть ли ограничение на размер при декодировании?
Серверных ограничений нет — инструмент работает полностью в вашем браузере. Практические ограничения зависят от памяти браузера. Для очень длинных закодированных строк или пакетной обработки используйте decodeURIComponent в скрипте.