На главную Разработчик URL-кодировщик

URL-кодировщик

Кодируйте и декодируйте URL

Как использовать URL-кодировщик

Кодируйте и декодируйте URL Бесплатный онлайн-инструмент, без регистрации, без навязчивой рекламы. Используйте прямо сейчас.

Когда нужна кодировка URL?

URL может содержать только ограниченный набор ASCII-символов. Пробелы, кириллица, знаки пунктуации и не-ASCII символы должны быть закодированы как последовательности процентов (%XX) для безопасной передачи в URL. Это особенно актуально для сервисов, работающих с русскоязычным контентом.

Правила кодирования: Буквы (A–Z, a–z), цифры (0–9) и символы -_.~ никогда не кодируются. Все остальные символы кодируются как % плюс два hex-знака, представляющие байтовое значение UTF-8 символа. Один кириллический символ занимает 2 байта (4 hex-знака) в UTF-8.

Чем отличается encodeURI от encodeURIComponent в JavaScript?

encodeURI кодирует URL целиком, не трогая структурные символы со смыслом в URL (/, ?, &, #, :). encodeURIComponent кодирует всё, кроме букв, цифр и -_.~*. Для отдельных значений параметров всегда используйте encodeURIComponent.

Чем отличается + от %20 в пробеле?

Оба представляют пробел в кодировке URL, но в разных контекстах. %20 — корректное представление в любом компоненте URL. Знак + представляет пробел только в application/x-www-form-urlencoded (данные HTML-формы) — не в сегментах пути.

Чем опасно двойное кодирование?

Если URL содержит %252F, это закодированный %2F (который сам является кодировкой /). Однократное декодирование даёт %2F, двукратное — /. Двойное кодирование возникает при многократном кодировании URL. При многократном декодировании на сервере это может стать уязвимостью path traversal.

Какие символы нужно кодировать в сегменте пути URL?

Зарезервированные символы с особым значением: пробел (%20), # (%23), % (%25), ? (%3F) и другие. Слеш / — разделитель пути: буквальный слеш в сегменте пути кодируйте как %2F.

Что такое Punycode?

Punycode конвертирует интернационализированные доменные имена (IDN) с не-ASCII символами в совместимую с ASCII кодировку. Домены с кириллицей (например, пример.рф) преобразуются в Punycode для передачи. Это отличается от процентного кодирования: Punycode применяется только к именам доменов.

Кодировка URL vs Base64 vs HTML-сущности

Кодировка URL (percent-encoding) делает данные безопасными для URL. Base64 делает бинарные данные безопасными для текстовых контекстов (email, JSON). HTML-сущности делают спецсимволы безопасными для HTML: & становится &, < — <. Каждый решает одну и ту же задачу (представление данных в ограниченном наборе символов) для своего целевого контекста. Использование неправильной кодировки ведёт к ошибкам или уязвимостям.

☕ Buy me a coffee