Преобразуйте процентное кодирование URL в читаемый текст. Проверьте значение запроса или часть пути без загрузки адреса.
Как пользоваться
Вставьте закодированный компонент и прочитайте результат. При ошибке проверьте полноту последовательностей со знаком процента.
Пример
Hello%20world превращается в Hello world. %26 даёт буквальный символ &.
Вопросы и ответы
Знак плюс превращается в пробел?
Нет. Плюс сохраняется. Данные HTML форм могут использовать другие правила, поэтому проверьте формат источника.
Связанные инструменты
Практическая задача
Проверяйте отдельный компонент. Восстановленный амперсанд внутри значения похож на разделитель. Сохраните оригинальный URL для повторной сборки.
Дополнительный вопрос
Почему второй проход даёт ошибку?
Буквальный процент после первого похож на начало новой записи. Снимайте нужный слой, а не декодируйте до исчезновения процентов.
Детали для проверки результата
| Деталь | Пояснение |
|---|---|
| Части URL | URL содержит схему, домен, путь, запрос и фрагмент. Разделители этих частей отличаются от знаков внутри значения. Кодируйте нужный компонент, а не меняйте полный адрес вслепую. |
| Процентное кодирование | Знак процента и две шестнадцатеричные цифры обозначают байт, а не видимый символ. Несколько таких записей могут относиться к одному символу Unicode, занимающему несколько байтов UTF8. |
| Значения запроса | Разделители запроса связывают имена параметров и значения. Амперсанд внутри значения нельзя путать с границей параметров. Перед публикацией соберите адрес с правильным кодированием частей. |
| Фрагменты URL | Фрагмент указывает место внутри ресурса и обычно не отправляется серверу. Это не параметр запроса. Его изменение не обязательно создаёт другой документ для выбора канонического адреса. |
| Байты UTF8 | UTF8 записывает символы байтами. Базовая латиница занимает один байт на букву, многие другие знаки занимают больше. Число байтов не равно числу видимых символов. |
| Кодирование и шифрование | Кодирование меняет представление данных для чтения другой системой и не требует секретного ключа. Шифрование защищает сведения ключом, а хеширование создаёт отпечаток для другой задачи. |
| Ссылки на символы HTML | Запись вроде & обозначает знак внутри HTML. При вложении она может быть экранирована повторно. Снятие одного слоя отличается от полного декодирования всех уровней. |
| Открытые данные URL | Адреса копируются, записываются в журналы и аналитику. Не помещайте пароли, личные сведения клиентов и секретные токены в обычные параметры или общедоступные ссылки: кодирование их не защищает. |
| Внешне одинаковый текст | Две строки могут выглядеть одинаково, но иметь разные последовательности Unicode. Буква с акцентом бывает цельным знаком или сочетанием. Внешнее сходство не доказывает равенство байтов. |