URL-кодировщик
Кодирует и декодирует URL-строки: переводит специальные символы в percent-encoded формат %XX и обратно. Поддерживает encodeURIComponent и encodeURI.
01
Кодировщик
02
Что кодирует каждая функция
encodeURIComponent агрессивнее — кодирует всё, кроме безопасных. encodeURI сохраняет структуру URL.03
О URL-кодировании — что стоит знать
URL-кодирование (percent-encoding) представляет любые символы в URL с помощью ASCII-последовательностей вида %XX, где XX — шестнадцатеричный код байта в UTF-8. Нужно потому, что URL может содержать только ограниченный набор безопасных символов.
Выбор функции зависит от задачи: encodeURIComponent — для значения одного параметра запроса. encodeURI — для полного URL, когда нужно сохранить его синтаксис (двоеточия, слэши, вопросительные знаки).
encodeURIComponent
чаще всего«привет мир!» → %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%BC%D0%B8%D1%80!
Кодирует всё, кроме букв, цифр и `- _ . ! ~ * ' ( )`. Символы `: / ? # @ & =` тоже кодируются — значение параметра не «сломает» структуру URL. Использовать для значений параметров ?q=… и данных форм.
encodeURI
для полных URL«https://сайт.рф/поиск» → «https://%D1%81%D0%B0%D0%B9%D1%82.%D1%80%D1%84/…»
Сохраняет структуру URL: не кодирует `: / ? # [ ] @ ! $ & ' ( ) * + , ; =`. Использовать когда нужно передать полный адрес как строку, не разрушая его синтаксис.
Декодирование
%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82 → «привет»
Обратная операция — переводит %XX-последовательности обратно в читаемый текст. Поддерживается формат `+` вместо пробела из HTML-форм (application/x-www-form-urlencoded).
Percent-encoding
RFC 3986%XX — где XX — hex-код байта в UTF-8
Каждый небезопасный символ представляется как `%XX`, где XX — hex-код байта в UTF-8. Кириллица занимает 2 байта (6 символов %XX%XX на букву), эмодзи — 4 байта.
04
Частые вопросы
Обновлено