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

Один проход снимает один слой; исходный текст остаётся редактируемым.

Определите кодирование до преобразования

Один проход снимает один слой; исходный текст остаётся редактируемым.

Шаг 1

Выберите подходящий режим

Компонент декодирует разделители; целый URI сохраняет их последовательности; форма превращает + в пробел.

Шаг 2

Сравните результат

Неполные последовательности и недопустимый UTF-8 дают ошибку, не меняя ввод.

Шаг 3

Сохраните границы

Скопируйте или скачайте результат. Исследуйте оставшиеся последовательности без автоматического повторного декодирования.

Практические задачи

Прочитать запрос из журнала

В журнале сначала определите кодированные поля. В q=A%26B&lang=en значение q — A%26B; компонент даёт A&B. Предварительное декодирование всего делает внутренний амперсанд похожим на разделитель.

Сохраните оригинал и делитесь вымышленными примерами. Вывод раскрывает имена или токены. Страница исследует значение, не коллекцию полей и не цель перенаправления.

Разобраться с плюсами

Сравните C++ с C%2B%2B. Компонент даёт C++ в обоих; форма меняет буквальные плюсы на пробелы, %2B на плюс.

Узнайте конвенцию отправителя до смены режима. Неожиданный пробел не доказывает исходный. Предупреждение + предлагает разобраться, не автоматически перейти к форме.

Проверить вложенное перенаправление

Вложенное %252F декодируйте один раз до %2F и определите слой. Отдельный второй компонентный проход даст /.

Это бывает правильно для внутреннего значения и неверно для целого адреса. Сохраните этапы вместо продолжения до читаемости. Читаемость не подтверждает подпись, цель или задуманный путь.

Приветствие ClockTools, восстановленное из процентной записи
Режим компонента восстанавливает приветствие ClockTools из процентной записи за один проход. Закодированный ввод остаётся виден рядом с расшифрованным текстом.

Определите значение до декодирования содержимого

Компонент декодирует процентные последовательности зарезервированных символов внутри значения. URI целиком сохраняет те, которые decodeURI считает структурными. Форма сначала меняет буквальные + на пробелы, затем строго декодирует. Выбирайте конвенцию отправителя, а не привычный вид.

Обрабатывается одна строка, не разобранная коллекция. Для нескольких полей определите кодированные разделители до преобразования имён и значений. Внутреннее %26 не должно стать разделителем из-за раннего декодирования всей коллекции.

JavaScript задаёт сохраняемый набор decodeURI, включая черту, амперсанд и плюс. %2F%26 остаётся в URI целиком, компонент даёт /&. Сохранённые последовательности могут быть правильным результатом, не отказом. ECMAScript decodeURI и сохраняемый набор.

Два слоя, два решения

  1. %252FВложенный ввод
  2. %2FПосле одного прохода
  3. /После отдельного второго прохода
Инструмент останавливается на %2F. Последний этап не выполняется автоматически.

Один слой — важная граница

%252F превращается в %2F, не в /. Значение могло быть намеренно вложено или ошибочно закодировано дважды. Сначала выясните причину.

Декодирование до исчезновения изменений превращает данные в структуру. Косая черта меняет сегменты пути, & разделяет поля. Сохраните оригинал и узнайте ожидаемое число слоёв.

decodeURI оставляет %2F и %26; decodeURIComponent раскрывает их внутри значения. Стандарт объясняет, почему эти границы нельзя удалять без разбора. Рекомендации по декодированию в RFC 3986.

Правильная последовательность не всегда означает правильный текст

Двух цифр после % недостаточно. %C3%A9 означает é, но %C3%28 не является допустимым UTF-8. Символы замены не вставляются, чтобы не скрывать проблему.

Старые данные могут использовать другую кодировку. Инструмент не определяет набор символов и не декодирует Latin-1. Найдите исходную кодировку.

В режиме формы + заменяется до декодирования, поэтому %2B остаётся плюсом. В отличие от терпимого анализатора WHATWG, этот декодировщик отклоняет неверные байты UTF-8. Порядок обработки форм WHATWG.

Разберите результат и оставшиеся последовательности

Таблица сравнивает одинаковый формоподобный ввод. %2B становится плюсом в компоненте/форме; только буквальный + становится пробелом в форме. Порядок сохраняет отличие. URI целиком оставляет %2B, так как плюс входит в сохраняемый набор.

Счётчик процентных последовательностей описывает ввод. Байты и кодовые точки вывода описывают текст, не глифы. caf%C3%A9 даёт café: две последовательности представляют два байта é; вывод — пять UTF-8-байт и четыре кодовые точки. Пустой вывод с ошибкой не означает успешно преобразованное пустое значение.

Пример заменяет ввод, очистка убирает его. Копирование и TXT работают с результатом и недоступны без вывода. Ссылка передаёт только страницу, ссылка кодировщика не переносит текст. Сохраните оригинал и режим для проверки обратного преобразования.

Фиксированные примеры: один режим, один проход
ВводРежимРезультат
caf%C3%A9Компонент URIcafé
A%2BB+CЗначение формыA+B C
A%2BB+CКомпонент URIA+B+C
%2F%26URI целиком%2F%26
%252FКомпонент URI%2F
%C3%28Компонент URIОшибка UTF-8; нет вывода

Ошибочная строка не частичный результат. Примеры не открывают и не подтверждают адрес.

Разделите синтаксис, байты и дополнительные слои

Конечное %, %2 или %GG нарушает синтаксис. Буквальный знак процента требует %25; замена всех знаков процента скроет корректные последовательности. Проверьте источник или обратитесь к отправителю, не угадывайте исправление неполной строки.

%E9 синтаксически верно, но отдельно не представляет é в UTF-8; %C3%A9 представляет. %C3%28 и %FF отвергаются несмотря на две цифры. Строгая ошибка показывает проблему байтов. Это не Latin-1-декодер и не определитель charset.

Если осталось %2F, различите сохранение URI целиком и закодированный внешний знак процента. Проверьте режим и оригинал до нового прохода. Одиночный % смешанного текста может сорвать всё преобразование; ввод остаётся редактируемым без частичного вывода.

При отказе копирования или экспорта используйте видимый результат и другую доступную команду. Не сообщайте частные перенаправления и секреты. Декодирование не проверяет хост, подпись, доступ или доверие; страница никогда не открывает адрес.

Методика и ограничения

Синтаксис последовательностей проверяется перед одним строгим проходом JavaScript. Форма сначала заменяет плюсы. Ошибка не выдаёт частичный результат и не заменяет ввод.

Результат не доказывает безопасность или доступность. Ссылки не открываются; подписи, полные формы и кодировки кроме UTF-8 не проверяются.

Исправьте исходную последовательность или запросите допустимый UTF-8. Сообщите режим и вымышленный пример, не частное перенаправление. Проверьте исправление у получателя.

Методика и ограничения · Правила исправлений

Частые вопросы

Почему %2F остаётся в режиме целого URI?

Режим сохраняет зарезервированные разделители. Для значения выберите компонент.

Почему плюс не меняется?

Только режим формы трактует буквальный плюс как пробел.

Снимаются ли слои автоматически?

Нет. За один проход снимается один слой.

Почему %E9 не работает, хотя другой декодер показывает é?

E9 отдельно невалиден в UTF-8 для é, нужны C3 A9. Другой декодер может предполагать старый charset или заменять байты. Узнайте исходную кодировку вместо доверия читаемой букве. Здесь намеренно только строгий UTF-8.

Почему %C3%28 отвергается с правильными процентными последовательностями?

Синтаксис и UTF-8 проверяются отдельно. C3 начинает многобайтную последовательность, 28 не является допустимым продолжением. Возвращается ошибка без частичного вывода, а оригинал остаётся редактируемым для исследования пропавшего или изменённого байта.

Нужно декодировать запрос до разделения полей?

Нет. %26 становится & и ложным разделителем. Сначала определите кодированные границы, затем декодируйте значение по конвенции. Инструмент не разбирает поля и не собирает исправленный запрос.

Пустой результат означает успех?

Проверьте статус. Пустой ввод даёт пустой вывод; ошибки тоже, но с сообщением. Оригинал можно исправить, копирование/экспорт отключены. Ошибка не означает очистку нежелательных символов.

Можно декодировать HTML-сущности или Base64?

Это процентный декодер, не выбор всех форматов. & и Base64 не интерпретируются по их правилам. Узнайте реальный формат и используйте нужный инструмент; неизменная строка не доказывает процентное кодирование.