URL Encoder / Decoder онлайн
Кодирование и декодирование URL по стандарту percent-encoding мгновенно, прямо в браузере. Кириллица, спецсимволы, пробелы. Три режима на выбор.
Возможности инструмента
Три режима
encodeURIComponent для параметров, encodeURI для полных адресов, decode для расшифровки.
Мгновенный результат
Кодирование происходит прямо при вводе без нажатия кнопок и ожидания.
Кириллица и Unicode
Корректно обрабатывает русские буквы, иероглифы, эмодзи и любые Unicode-символы.
Работает офлайн
Вся обработка в вашем браузере. Данные никуда не отправляются.
Как пользоваться
Выберите режим
Текст URL для кодирования; URL Текст для декодирования; Полный URL когда нужно безопасно передать весь адрес.
Введите текст
Вставьте или напишите нужный текст в левое поле. Результат появится справа моментально в реальном времени.
Скопируйте результат
Нажмите Скопировать для получения результата. Кнопка позволяет поменять ввод и вывод местами для обратной операции.
Когда это нужно
Как работает percent-encoding
Percent-encoding (URL-кодирование) стандарт RFC 3986, описывающий правила замены небезопасных символов в URI на последовательность %XX, где XX шестнадцатеричный код байта символа в UTF-8. Такая техника нужна потому, что URL может содержать только ограниченный набор символов ASCII, а всё остальное кириллица, японские иероглифы, эмодзи должно быть закодировано.
Алгоритм прост: каждый байт символа (в кодировке UTF-8) заменяется символом % и двумя шестнадцатеричными цифрами. Например, буква п в Unicode U+043F, в UTF-8 байты 0xD0 0xBF, поэтому в URL она выглядит как %D0%BF. Пробел один байт 0x20 превращается в %20.
Ключевое различие между encodeURI и encodeURIComponent в JavaScript:
| Функция | Сохраняет | Кодирует | Когда использовать |
|---|---|---|---|
encodeURIComponent |
Буквы, цифры, - _ . ! ~ * ' ( ) |
Всё остальное, включая / ? # & = |
Кодирование значения параметра |
encodeURI |
Структурные символы URL (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) |
Пробелы, кириллица, Unicode вне ASCII | Кодирование всего URL целиком |
decodeURIComponent |
Декодирует всё закодированное | Расшифровка параметров и строк |
Выбор режима зависит от задачи. Если нужно передать в качестве параметра строку, содержащую / или &, используйте encodeURIComponent. Если нужно подготовить полный адрес страницы encodeURI. Для расшифровки любых %XX-последовательностей decodeURIComponent.
Часто задаваемые вопросы
%XX, где XX шестнадцатеричный байт символа в UTF-8. Например, пробел %20, А кириллицы %D0%90. Стандарт описан в RFC 3986.encodeURIComponent кодирует все символы кроме букв, цифр и - _ . ! ~ * ' ( ) то есть кодирует даже / ? # & =. Используется для кодирования значения параметра. encodeURI сохраняет структурные символы URL (:/?#[]@!$&'()*+,;=), поэтому подходит для кодирования полного адреса.+ вместо пробела это устаревший формат application/x-www-form-urlencoded, используемый в HTML-формах (например, Google-поиск). Стандарт RFC 3986 требует кодировать пробел как %20. Большинство современных API принимают оба варианта, но %20 считается предпочтительным.%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80 в левое поле. Результат декодирования появится справа немедленно.AZ и az, цифры 09, а также знаки - _ . ~. Они разрешены везде в URL без кодирования. Зарезервированные символы (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) кодируются только при использовании encodeURIComponent.%XX. Например: п = %D0%BF, р = %D1%80, и = %D0%B8. Это стандартное поведение всех браузеров и серверов.%2B это закодированный символ +, а %2F закодированный /. Если нужно получить читаемый вид, используйте режим URL Текст он декодирует все %XX-последовательности обратно в символы.encodeURI: сохраняет структурные символы URL (:/?#&= и др.) нетронутыми и кодирует только кириллицу и спецсимволы. Используйте его, когда нужно безопасно передать полный адрес страницы.+ в качестве пробела допустим только в строке запроса (?key=hello+world) при передаче HTML-форм с application/x-www-form-urlencoded. В остальных частях URL пути, хосте, якоре пробел нужно кодировать как %20.