Кодировщик, декодировщик и инспектор URL
Кодируйте тем профилем, которого на самом деле требует спецификация, разворачивайте дважды закодированные редиректы, разбирайте ссылку до учётных данных и настоящего имени хоста, правьте строку запроса вручную и убирайте все параметры отслеживания одним щелчком.
То, что делает JavaScript: экранирует всё, кроме A-Z a-z 0-9 и - _ . ! ~ * ' ( ). Годится для отдельного значения, но подделимитеры остаются нетронутыми.
Как это работает
Ссылка приходит
Вставьте её, откройте .txt, полный ссылок, или позвольте другому инструменту oLoveTools передать свой результат напрямую. Ничего не обрабатывается, пока вы не попросите.
Она разбирается
Схема, учётные данные, настоящее имя хоста, порт, сегменты пути и каждый параметр — в сыром и раскодированном виде рядом друг с другом.
Вы её правите
Переименуйте ключ, переставьте строку запроса, разверните дважды закодированный редирект или выкиньте все трекеры. Ctrl+Z отменяет любое из этих действий.
Она уходит чистой
Скопируйте её, выгрузите пакет в CSV или JSON либо отправьте результат в другой инструмент, минуя папку загрузок.
Восемь профилей кодирования
encodeURIComponent и encodeURI — лишь два из ответов. Здесь есть также строгий RFC 3986, form-urlencoded, путь, запрос, фрагмент и RFC 5987, и у каждого есть пометка, когда он уместен.
Строка запроса, которую можно править
Переименовывайте ключи, меняйте значения, переставляйте строки, удаляйте лишнее. Параметры, которых вы не касались, записываются обратно байт в байт — сохраняется даже разница между + и %20.
Трекеры долой одним щелчком
utm_*, fbclid, gclid, msclkid, mc_eid и десятки других, сгруппированные по происхождению, с точным числом байт, которые сэкономила чистка.
Он говорит, что не так
Учётные данные открытым текстом, имя хоста из похожих букв, параметр, который на деле является другим URL, дважды применённое экранирование — всё помечено ещё до того, как вы куда-то нажали.
Двойное кодирование — развёрнуто
Цепочки редиректов приходят закодированными два-три раза. «Декодировать до стабильного результата» разворачивает их за один раз и сообщает, сколько проходов понадобилось.
Целые списки разом
Забросьте текстовый файл со ссылками и очистите их все за один проход, а затем выгрузите результат в CSV или JSON с экономией по каждому URL.
Правильное экранирование зависит от того, куда попадёт значение
Значению, которое идёт в сегмент пути, в строку запроса, в тело формы и в заголовок Content-Disposition, нужны четыре разных экранирования, а JavaScript даёт только два. URLBolt даёт все восемь, показывает, какие символы каждое из них оставляет нетронутыми, и проверяет, что декодирование результата в точности воспроизводит ваш ввод, ещё до того, как вы куда-то его вставите.
Ничто не покидает ваш браузер
Все операции — кодирование, декодирование, разбор, преобразование punycode, удаление трекеров, пакетная чистка — выполняются нативными API браузера в вашей собственной вкладке. Нет ни загрузки на сервер, ни запроса, ни серверного шага, ни чего-либо, что можно было бы записать в журнал. Ссылки, которые вы разбираете, чаще всего именно те, которые меньше всего хочется отправлять на чужой сервер, — потому ни одна из них никуда и не уходит.
Сделано для ссылок, которые приходят сломанными
Партнёрские URL с тремя редиректами, кампанейские ссылки с дюжиной параметров отслеживания, дважды закодированный колбэк API, старый эндпоинт с паролем прямо в authority, международный домен, который терминал показывает как xn--. URLBolt читает их все, показывает punycode-хост так, как его написал бы человек, разворачивает вложенные редиректы и позволяет починить строку запроса вручную вместо того, чтобы пересобирать весь адрес в текстовом редакторе.
Нет регистрации, нет дневной квоты и нет платного тарифа, прячущего полезную половину инструмента. Открытые файлы читаются локально и никогда не передаются; вкладка забывает всё, когда вы её закрываете.
Частые вопросы
QЧем encodeURIComponent отличается от encodeURI?+
encodeURI экранирует целый адрес, но оставляет нетронутыми символы, которые строят синтаксис URL — : / ? & = + $ , # — так что результат остаётся рабочим URL. encodeURIComponent экранирует и их, а это как раз то, что нужно для значения одного параметра. Ни один из них не экранирует ! ' ( ) *, поэтому если вы подписываете запрос, вам скорее нужен профиль «Строгий RFC 3986».
QПочему в раскодированном тексте остался знак %?+
Потому что во вводе была сломанная последовательность — % , за которым идёт меньше двух шестнадцатеричных цифр или два символа, которые вообще не являются шестнадцатеричными. Вместо того чтобы выбросить всю строку, URLBolt сохраняет буквальный %, декодирует всё остальное и перечисляет точную позицию каждой проблемы, чтобы вы видели, где ссылка оборвалась.
QКогда пробел должен быть +, а когда %20?+
Внутри тела или строки запроса application/x-www-form-urlencoded — того, что отправляет HTML-форма, — пробел это +. Везде остальном, включая сегменты пути, это %20. Перепутать их — самая частая ошибка в URL, поэтому у обоих направлений есть переключатель, а кодировщик отмечает, какой из них сейчас используется.
QНе ломает ли ссылку удаление параметров отслеживания?+
Почти никогда. utm_*, fbclid, gclid и их родню читает аналитика, а не сама страница, так что без них адресат тот же. Параметры, которые иногда бывают настоящими — ref, source, s — по умолчанию остаются и удаляются, только если отметить агрессивный режим.
QЧто означает строка punycode под именем хоста?+
Перед отправкой браузеры переводят международные доменные имена в ASCII-форму, начинающуюся с xn--. URLBolt переводит эту форму обратно, чтобы её можно было прочитать, и предупреждает, когда одна метка смешивает системы письма: именно так кириллическая а выдаёт себя за латинскую в поддельном домене.
QОтправляется ли что-нибудь на сервер?+
Нет. Кодирование, декодирование, разбор, преобразование punycode и пакетная чистка — это нативные API браузера, работающие в вашей вкладке. Сетевых запросов нет ни в один момент, поэтому после загрузки страницы инструмент работает и без интернета.