URL кодирование / декодирование

Percent-кодирование и декодирование URL и строк запроса в режимах component, URI и form, с кодировками UTF-8, UTF-16 и Latin-1. Локально в браузере.

Введённые данные и файлы остаются в браузере

Вставьте URL, строку запроса или обычный текст, чтобы закодировать или декодировать его.

Здесь появится результат кодирования или декодирования.

На этой странице

Кодируйте текст для URL в percent-encoding и декодируйте последовательности %XX обратно в читаемый текст. Три режима соответствуют encodeURIComponent, encodeURI из JavaScript и кодированию HTML-форм, а работу выполняет WebAssembly-модуль, собранный из Rust, прямо в браузере.

Подробное описание функциональности

Режим Component экранирует всё, кроме букв, цифр и - _ . ! ~ * ' ( ), то есть кодирует и /, ?, &, =: используйте его для одного значения параметра запроса или одного сегмента пути. Режим URI сохраняет структуру полного адреса (: / ? # & = + $ , ; @) и экранирует только пробелы и символы, которые в URL недопустимы. Режим Form следует application/x-www-form-urlencoded: пробелы становятся +, экранируется всё, кроме букв, цифр и - _ . *; при декодировании + снова превращается в пробел.

Перед кодированием текст переводится в байты в выбранной кодировке. UTF-8 — стандарт веба; ISO-8859-1 (Latin-1), UTF-16LE и UTF-16BE оставлены для старых систем, а символ, который кодировка не может представить, отмечается ошибкой с позицией. Декодирование строгое: после каждого % должны идти две hex-цифры, поэтому одинокий 100% вызовет ошибку, а не пройдёт молча. Строка статуса показывает длину результата в символах и байтах.

Практические примеры

Значение параметра: a b&c=d/e? в режиме Component превращается в a%20b%26c%3Dd%2Fe%3F.

Целый URL: https://example.com/my path?q=a b&x=1 в режиме URI становится https://example.com/my%20path?q=a%20b&x=1, а в режиме Component — https%3A%2F%2Fexample.com%2Fmy%20path%3Fq%3Da%20b%26x%3D1.

Данные формы: John Doe & Co. в режиме Form становится John+Doe+%26+Co.; декодирование a+b%20c даёт a b c в режиме Form, но a+b c в режиме Component.

Кодировка: café — это caf%C3%A9 в UTF-8 и caf%E9 в ISO-8859-1.

Как использовать этот инструмент

  1. Вставьте текст или закодированную строку

    Введите в поле Ввод обычный текст для кодирования или percent-encoded строку для декодирования.

  2. Выберите режим и кодировку

    В поле Режим выберите Component (аналог encodeURIComponent) для отдельного значения, URI (аналог encodeURI) для целого адреса или Form (application/x-www-form-urlencoded) для тела формы. Кодировка текста оставьте UTF-8, если сервер не ожидает другую.

  3. Закодируйте или декодируйте

    Нажмите Кодировать, чтобы закодировать ввод, или Декодировать, чтобы восстановить текст. Неверные последовательности % и символы вне кодировки отмечаются ошибкой.

  4. Скопируйте результат

    Копировать помещает результат в буфер обмена. Поменять местами возвращает его во ввод — например, чтобы снять ещё один слой кодирования.

Советы и лучшие практики

  • Кодируйте каждое значение параметра отдельно в режиме Component и только потом соединяйте их через & и =. Если закодировать в Component весь URL, :// тоже экранируется и ссылка сломается.
  • Режим URI не экранирует &, = и #: если они есть в значении параметра, кодируйте это значение в режиме Component.
  • + означает пробел только в данных формы; вне режима Form он декодируется как обычный плюс.
  • Дважды закодированный текст вроде %2520 сначала превращается в %20: нажмите Поменять местами и снова Декодировать, чтобы снять следующий слой.
  • Используйте кодировку, которую ожидает сервер: %E9 декодируется в é с ISO-8859-1, а в UTF-8 одиночный %E9 — это недопустимый текст.