Декодер URL
Декодируйте URL или строку с процентным кодированием в читаемый текст. Вставьте её в поле «Закодированный URL», чтобы увидеть результат декодирования.
Инструмент декодирования процентного кодирования URL
Формула декодера URL
Где:
- \(\text{input}\) — текст, введённый в поле «Закодированный URL».
- \(\operatorname{trim}\) — удаляет пробелы в начале и конце введённого текста.
- \(\operatorname{decodeURIComponent}\) — преобразует корректные процентно-кодированные байты в символы.
Калькулятор однократно применяет JavaScript-функцию decodeURIComponent к введённому тексту без лишних пробелов. Например, %20 превращается в пробел, а %3A — в двоеточие.
Декодер URL — пример вычисления
Пример: декодируем значение по умолчанию — https%3A%2F%2Fcalcdash.com%2Ftools%3Futm_source%3Dchat.
\[\%3A\to\texttt{:},\quad\%2F\to\texttt{/},\quad\%3F\to\texttt{?},\quad\%3D\to\texttt{=}\]
Результат: https://calcdash.com/tools?utm_source=chat.
Как пользоваться декодером URL
- Вставьте процентно-кодированный URL, значение параметра запроса или другой закодированный текст в поле «Закодированный URL». Значение по умолчанию доступно, если сначала хотите попробовать пример.
- Прочитайте преобразованный текст под надписью «Декодированный URL». Результат можно скопировать с помощью кнопки копирования рядом с ним.
- Если выводится сообщение «Недопустимая закодированная строка», проверьте ввод на наличие незавершённой процентной последовательности, escape-последовательности с нешестнадцатеричными символами или некорректной последовательности байтов UTF-8.
Что означает декодирование URL
Процентное кодирование представляет символ знаком процента, за которым следуют две шестнадцатеричные цифры для каждого кодируемого байта. Это позволяет передавать в URL символы, которые иначе имели бы специальное значение или которые трудно вставить напрямую. Пробел обычно записывается как %20; двоеточие можно записать как %3A. Этот декодер превращает такие последовательности обратно в читаемые символы, благодаря чему скопированные ссылки, адреса перенаправлений и значения параметров запроса проще анализировать.
Калькулятор применяет decodeURIComponent ко всему введённому тексту. Несмотря на название поля, ввод не обязан быть полным URL: Hello%20World%21 даёт Hello World!. Декодер также раскрывает процентно-кодированные зарезервированные символы. В разобранном примере %3F превращается в вопросительный знак, начинающий строку запроса, а %3D — в знак равенства в её параметре.
Декодированный текст удобен для чтения значения, но это не обязательно URL, который можно использовать без изменений. Декодированный слэш, вопросительный знак или амперсанд могут приобрести структурную роль, если результат снова поместить в URL. Если нужно снова закодировать текст для определённого компонента URL, воспользуйтесь кодировщиком URL. А чтобы найти ссылки в большом массиве текста, попробуйте извлекатель URL.
Частые кодировки в одной таблице
| Закодированный текст | Декодированный символ |
|---|---|
%20 |
Пробел |
%2F |
/ |
%3F |
? |
%25 |
% |
%E2%9C%93 |
✓ |
В последней строке показан символ, закодированный несколькими байтами UTF-8. Декодер интерпретирует корректные процентно-кодированные последовательности UTF-8 целиком, а не как отдельные символы на каждый закодированный байт.
Ограничения и практические советы
Знак «плюс» этим калькулятором в пробел не преобразуется. В данных формы, кодированных как query string, + часто обозначает пробел, но decodeURIComponent оставляет его как +. Например, red+blue остаётся red+blue, тогда как red%20blue превращается в red blue. Если вы обрабатываете данные формы, используйте парсер запросов, понимающий этот формат, чтобы отличать его от процентного декодирования.
Декодирование выполняется только один раз. Например, %2520 превращается в %20, а не в пробел: первый проход декодирует %25 в буквальный знак процента. Декодируйте второй раз, только если точно знаете, что источник был закодирован дважды. Повторное декодирование может изменить смысл текста, который вы хотели сохранить буквальным.
Каждый знак процента должен начинать корректную escape-последовательность, например %2F. Одиночный %, последовательность вроде %ZZ или процентно-кодированные байты, не образующие корректный UTF-8, приводят к тому, что калькулятор показывает «Недопустимая закодированная строка» вместо частичного результата. Калькулятор удаляет пробелы вокруг введённого текста перед декодированием, но пробелы, записанные как %20 внутри ввода, остаются в декодированном результате.
Декодирование URL — это не то же самое, что декодирование Base64: эти форматы используют разные правила и не взаимозаменяемы. Если ваш текст закодирован в Base64, а не процентным кодированием, воспользуйтесь декодером Base64.
Часто задаваемые вопросы
Как декодировать процентно-кодированную строку вручную?
Считывайте каждый знак % с двумя шестнадцатеричными цифрами как один байт, а затем интерпретируйте эти байты как текст в UTF-8. Например, %48%69 даёт байты слова «Hi». Символу вне базовой ASCII может требоваться несколько байтов, поэтому декодируйте соседние escape-последовательности вместе, а не как отдельные символы.
В чём разница между decodeURI и decodeURIComponent?
JavaScript-функция decodeURI сохраняет escape-последовательности для символов со структурной ролью в URL, например закодированных вопросительных знаков и амперсандов. decodeURIComponent декодирует и эти символы. Этот калькулятор использует decodeURIComponent, что удобно для чтения закодированного значения, но может сделать полный URL структурно отличающимся от исходного.
Равнозначны ли прописные и строчные шестнадцатеричные буквы в URL-кодировании?
Да. Шестнадцатеричные цифры нечувствительны к регистру, поэтому %2F и %2f оба декодируются в слэш. Обычные буквы, не входящие в процентную escape-последовательность, остаются без изменений: «A%2Fb» превращается в «A/b». Изменение регистра в escape-последовательности не меняет байт, который она обозначает.
Почему в декодированном URL всё ещё есть знаки процента?
Оставшийся знак процента может быть обычным текстом или частью другого слоя кодирования. Например, однократное декодирование %252F даёт %2F, потому что %25 обозначает буквальный знак процента. Не спешите делать второй проход: сначала проверьте, было ли исходное значение намеренно закодировано более одного раза.
Можно ли декодировать только один параметр запроса, не изменяя остальную часть URL?
Да. Сначала извлеките значение параметра, а затем декодируйте именно его, а не весь URL. Это важно, когда значение содержит закодированный амперсанд или знак равенства: декодирование полного URL может сделать эти символы похожими на разделители параметров. Для query string в формате данных формы парсер запросов вроде URLSearchParams также учитывает соглашение, что + обозначает пробел.
Показывает ли декодирование ссылки, безопасно ли её открывать?
Нет. Декодирование лишь показывает читаемый текст; оно не проверяет адрес назначения, не отслеживает перенаправления и не подтверждает надёжность ссылки. Проверяйте фактическое имя хоста и осторожно относитесь к ссылкам из неизвестных источников. Строки запроса также могут содержать приватные токены, поэтому не публикуйте декодированную ссылку, не просмотрев её предварительно.