Декодер URL
Декодер URL, это бесплатный инструмент, который преобразует текст с процентным кодированием из URL обратно в исходную строку.
Как работает декодирование URL?
Декодирование URL отменяет экранирование, которое позволяет передавать пробелы, знаки препинания и другие байты в URL и других синтаксисах, где предусмотрено процентное кодирование. Каждый байт представляется знаком процента и двумя шестнадцатеричными цифрами. При кодировании данных веб-форм пробел также обозначается знаком +. Например, пробел можно записать как %20, а амперсанд как %26.
Простой пример до и после декодирования:
Закодированная строка: red%20%26%20blue
Результат декодирования: red & blue
Такое кодирование необходимо, поскольку некоторые символы определяют структуру URL. Знак вопроса отделяет строку запроса, а в данных запросов, закодированных как веб-форма, амперсанд обычно разделяет поля. Кодирование позволяет приложению передавать эти символы как данные, а не как структурные элементы.
Кодирование URL не является шифрованием и не обеспечивает конфиденциальности. Любой, кто видит закодированное значение, может его декодировать. Не считай пароли, токены доступа или персональные данные защищёнными только потому, что они закодированы этим способом.
Как пользоваться декодером URL?
Вставь или введи закодированный текст, запусти обработку и посмотри восстановленное значение в поле Декодированный URL. Инструмент использует функцию PHP urldecode, поэтому преобразует корректные последовательности %HH, а знак плюса воспринимает как пробел.
- Скопируй закодированный компонент, например значение параметра запроса.
- Введи значение с URL-кодированием. Не добавляй кавычки, если они не являются частью самого значения.
- Обработай введённые данные и проверь результат в поле Декодированный URL.
- Если в результате по-прежнему встречаются последовательности вроде %2F или %20, проверь, не была ли исходная строка закодирована несколько раз, прежде чем декодировать её повторно.
Обработка выполняется на сервере. Введённые данные передаются на него по HTTPS и не сохраняются, но во время обработки покидают твоё устройство. Не вставляй секретные данные в Декодер URL, если серверная обработка не подходит для этих данных.
Где используется кодирование URL?
Чаще всего URL-кодирование встречается в строках запроса, данных веб-форм и значениях, встроенных в ссылки. Оно также применяется в менее очевидных случаях, когда данные нужно передать через текстовый формат с ограниченным набором допустимых символов.
- Строки запроса: поисковый запрос "tea & cake" может выглядеть как q=tea+%26+cake.
- URI данных: текстовые данные после типа медиаданных могут кодироваться процентными последовательностями, хотя также часто используется Base64.
- Ссылки электронной почты: в ссылке mailto пробелы, переносы строк и знаки препинания в параметрах темы или тела письма могут быть закодированы. Кодировки передачи MIME внутри самого письма являются отдельными форматами.
- Данные JSON: у JSON есть собственные правила экранирования, но строка JSON может содержать уже закодированный URL или значение запроса, которое нужно декодировать отдельно.
- Интернационализированные домены: для доменных меток с символами вне ASCII обычно применяется Punycode, а не процентное кодирование. При этом компоненты пути и запроса всё равно могут содержать процентно закодированные байты UTF-8.
Если закодированный текст представляет собой доменную метку, начинающуюся с xn--, используй Конвертер IDN Punnycode. Декодер URL предназначен для компонентов URL с процентным кодированием, а не для преобразования Punycode.
Примеры декодирования URL
Ниже приведены распространённые примеры закодированных значений и соответствующие результаты декодирования.
- hello%20world преобразуется в hello world.
- name=Tom+Jones преобразуется в name=Tom Jones.
- fish%26chips преобразуется в fish&chips.
- %C2%A3 преобразуется в £, если байты представляют текст в UTF-8.
- %E6%9D%B1%E4%BA%AC преобразуется в 東京 при интерпретации как UTF-8.
- 100%25 преобразуется в 100%.
Обычные буквы, цифры и незакодированные знаки препинания, как правило, остаются без изменений. При пустом вводе поле Декодированный URL также будет пустым. Для очень длинных строк действуют те же правила декодирования, однако браузеры, серверы и принимающие системы могут устанавливать собственные ограничения на длину запроса или URL.
Символы с диакритическими знаками и символы нелатинских алфавитов обычно кодируются как последовательность байтов UTF-8, причём каждый байт записывается отдельно. Если исходная система использовала другую кодировку символов, декодированные байты могут отображаться как символы замены или бессмысленный текст.
Почему URL не декодируется или получается нечитаемый текст?
Результат декодирования URL может остаться без изменений или оказаться неожиданным, если во входных данных есть неполные процентные последовательности, данные были закодированы несколько раз, используется неверная кодировка символов или это вообще не данные с URL-кодированием. Функция PHP urldecode оставляет некорректные процентные последовательности без изменений, а для многократно закодированных данных после одного прохода возвращает промежуточный результат. Прежде чем повторять декодирование, проверь исходные данные.
- Двойное кодирование: после одного прохода %2520 преобразуется в %20 и только после второго становится пробелом. Повторяй декодирование лишь тогда, когда точно знаешь, что существует ещё один уровень кодирования.
- Неполная процентная последовательность: для каждого закодированного байта нужны две шестнадцатеричные цифры. Знак % в конце строки или значение вроде %2 некорректны и не могут обозначать полный закодированный байт, поэтому PHP urldecode оставляет их без изменений.
- Неверная кодировка символов: процентное декодирование восстанавливает байты. Например, если интерпретировать байты ISO-8859-1 как UTF-8, можно получить нечитаемый текст, хотя сами процентные последовательности были корректными.
- Двоичные данные вместо текста: декодированные байты могут представлять изображение, сжатый файл или другое двоичное содержимое. Не следует ожидать, что такой результат будет отображаться как читаемый текст.
- Другой тип кодирования: если результат декодирования URL затем передать в Декодер Base64, обработка может завершиться ошибкой из-за различий между стандартным и безопасным для URL алфавитом, отсутствующего заполнения = или повреждённых данных. В процентном кодировании URL нет заполнения и не используется алфавит Base64. Декодирование URL также не проверяет и не исправляет такие проблемы Base64.
Будь внимателен с буквальными знаками плюса. В URL-кодировании данных веб-форм + означает пробел. Настоящий знак плюса перед декодированием обычно должен быть записан как %2B.
Часто задаваемые вопросы
Нужно декодировать весь URL или только его часть?
По возможности декодируй только отдельный сегмент пути или значение параметра запроса. При декодировании всего URL зарезервированные символы вроде %26, %3F или %2F могут превратиться в разделители и изменить разбор адреса.
Декодируются ли шестнадцатеричные коды в нижнем регистре?
Да. Регистр шестнадцатеричных цифр в процентных последовательностях не имеет значения, поэтому %2f и %2F обозначают один и тот же байт. Последовательности со смешанным регистром также допустимы.
Декодирует ли инструмент одно значение несколько раз?
Нет. Один вызов urldecode выполняет один проход декодирования. Если %252F преобразовалось в %2F, для получения косой черты потребуется ещё один проход. Однако повторное декодирование может изменить данные, в которых процентная последовательность должна была остаться буквальной.
Можно ли восстановить повреждённый текст с помощью декодирования URL?
Нет. Инструмент может отменить корректное процентное кодирование, но не способен восстановить отсутствующие шестнадцатеричные цифры или точно определить исходную кодировку символов. Если декодированные байты отображаются неправильно, проверь исходную систему, заголовки HTTP или документацию.
Что делать со значением, которое начинается с xn--?
Считай его доменной меткой Punycode, а не обычным текстом с процентным кодированием. Используй Конвертер IDN Punnycode, а затем внимательно проверь полученный домен, поскольку визуально похожие символы Unicode могут относиться к разным системам письма.
Похожие инструменты
Закодируйте любую строку в формате URL с помощью нашего инструмента кодирования URL для безопасных веб-адресов.
Популярные инструменты
Создайте свою собственную подпись и легко скачайте её с помощью нашего инструмента для генерации персонализированных электронных подписей.
Рассчитайте размер любого текста в байтах (B), килобайтах (KB) или мегабайтах (MB) с помощью нашего инструмента калькулятора размера текста.
Используйте инструмент обратного поиска IP, чтобы быстро и легко найти домен или хост, связанный с любым IP-адресом.
Используйте наш инструмент ping, чтобы быстро и эффективно проверить статус и время отклика любого веб-сайта, сервера или порта.
Инструмент поиска IP-адресов от Digily Link предоставляет подробную информацию о любом IP-адресе. Используйте этот бесплатный онлайн-сервис, чтобы получить полные данные об IP.
Создавайте ссылки для сообщений WhatsApp без усилий с помощью нашего инструмента генерации ссылок WhatsApp для мгновенной связи.