URL Encoding Кодировать & Декодировать

Бесплатный онлайн-инструмент URL Encoding Кодировать & Декодировать. 100% локальная обработка — ваши данные никогда не покидают устройство.

Вывод

Результат будет отображен здесь...

Ввод Закодировать

Usage Guide

О кодировании URL

Кодирование URL (также известное как процентное кодирование, определённое в RFC 3986) — это метод кодирования, который преобразует специальные символы в URL в безопасные символы. URL допускают только подмножество символов ASCII (буквы, цифры и несколько специальных символов); другие символы (например, пробелы, кириллица, специальные знаки) должны быть закодированы перед использованием в URL. Кодирование URL преобразует каждый байт в формат %XX, где XX — шестнадцатеричное представление этого байта. Кодирование URL является основой веб-разработки и широко используется в параметрах URL, отправке форм, HTTP-запросах и других сценариях.

Основа веб-разработки: Кодирование URL — один из наиболее часто используемых методов кодирования в веб-разработке, применяемый для передачи параметров в URL, обработки отправки форм, создания HTTP-запросов и многого другого. Оно гарантирует, что специальные символы (пробелы, &, = и т.д.) могут безопасно передаваться в URL. Рекомендуется как первый выбор для обработки параметров URL.

Шаги использования

Кодирование и декодирование URL очень просто:

1. КодироватьВведите текст со специальными символами, нажмите кнопку «Кодировать», чтобы получить URL-безопасную кодированную строку
2. ДекодироватьВведите URL-кодированную строку, нажмите кнопку «Декодировать», чтобы восстановить исходный текст
3. Скопировать результатНажмите кнопку «Копировать», чтобы получить кодированный или декодированный результат
Защита конфиденциальности: Все вычисления выполняются локально в вашем браузере, данные никогда не загружаются на серверы, полностью офлайн-обработка.

Правила кодирования

Кодирование URL следует этим правилам:

Зарезервированные символыБуквы (A-Z, a-z), цифры (0-9), дефис (-), подчёркивание (_), точка (.), тильда (~) не кодируются
ПробелыПробелы кодируются как %20 или + (в строках запроса)
Специальные символыДругие символы (&, =, ?, # и т.д.) кодируются в формате %XX
UTF-8Не-ASCII символы (кириллица и т.д.) сначала преобразуются в байты UTF-8, затем кодируются как %XX
Примечание: Разные части URL имеют разные правила кодирования. Пробелы в строках запроса (после ?) обычно кодируются как +, тогда как пробелы в части пути кодируются как %20. Использование encodeURIComponent() JavaScript правильно обрабатывает большинство случаев.

Примеры распространённых кодировок

Вот URL-кодировки для некоторых распространённых символов:

Пробел%20 или + (в строках запроса)
&%26
=%3D
?%3F
#%23
Китайский «Привет»%E4%BD%A0%E5%A5%BD

Сценарии применения

Кодирование URL широко используется в различных сценариях веб-разработки:

Параметры URLПередача параметров в строках запроса URL (например, ?name=Иван&age=20)
Отправка формHTML-формы отправляют данные с кодированием application/x-www-form-urlencoded
HTTP-запросыКодирование параметров при создании GET/POST-запросов
RESTful APIПередача идентификаторов ресурсов со специальными символами в путях URL
OAuthПараметры, такие как redirect_uri в потоках аутентификации OAuth, требуют кодирования
Поисковые системыПоисковые ключевые слова должны быть закодированы при передаче в URL

FAQ

Q: В чём разница между кодированием URL и Base64?

A: Кодирование URL и Base64 оба используются для работы со специальными символами, но для разных целей. Кодирование URL: 1) Цель: Обеспечить безопасную передачу специальных символов в URL. 2) Формат: %XX (например, %20). 3) Сценарии: Параметры URL, отправка форм. Base64: 1) Цель: Преобразование бинарных данных в текстовый формат. 2) Формат: A-Z, a-z, 0-9, +, /. 3) Сценарии: Встроенные изображения, JWT, вложения электронной почты. Рекомендации по выбору: 1) Параметры URL: используйте кодирование URL. 2) Бинарные данные: используйте Base64. 3) Оба можно комбинировать (например, сначала кодировать Base64, затем URL).

Q: Как следует кодировать пробелы — %20 или +?

A: Кодирование пробелов зависит от расположения в URL. %20: 1) Используется в части пути URL (например, /path/hello%20world). 2) Используется в Fragment (после #). 3) encodeURIComponent() кодирует пробелы как %20. +: 1) Используется в строках запроса (после ?, например, ?q=hello+world). 2) Формат application/x-www-form-urlencoded использует +. Рекомендация: Используйте encodeURIComponent() для единообразного кодирования как %20; серверы автоматически обрабатывают и + и %20.

Q: Как использовать кодирование URL в JavaScript?

A: JavaScript предоставляет три функции кодирования URL с разными целями. encodeURIComponent(): Кодирует компоненты URI (значения параметров), рекомендуется. Кодирует все специальные символы (кроме A-Z, a-z, 0-9, -, _, ., ~). encodeURI(): Кодирует полный URI, сохраняет символы структуры URI (такие как :, /, ?, &). Подходит для кодирования полных URL. escape(): Устарела, не рекомендуется. Пример:
// Кодирование значения параметра (рекомендуется) encodeURIComponent('Привет Мир'); // '%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%20%D0%9C%D0%B8%D1%80' // Кодирование полного URL encodeURI('https://example.com/привет'); // 'https://example.com/%D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82'
Декодирование: Используйте decodeURIComponent() или decodeURI().

Q: Как кириллические символы кодируются в URL?

A: Не-ASCII символы должны сначала быть преобразованы в байты UTF-8, затем закодированы в формате %XX. Пример: “Привет” → байты UTF-8: D0 9F D1 80 D0 B8 D0 B2 D0 B5 D1 82 → кодирование URL: %D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82. JavaScript: encodeURIComponent('Привет') автоматически обрабатывает преобразование UTF-8. Примечание: 1) Разные кодировки (например, Windows-1251) дают разные результаты. 2) Сервер должен правильно декодировать UTF-8. 3) Современные веб-приложения единообразно используют кодировку UTF-8.

Q: Увеличивает ли кодирование URL размер данных?

A: Да, кодирование URL увеличивает размер данных, причём увеличение зависит от типа символа. Символы ASCII: 1) Буквы, цифры: не кодируются, размер не меняется. 2) Специальные символы (&, = и т.д.): кодируются как 3 байта (%XX), увеличение на 200%. Не-ASCII символы: 1) Кодировка UTF-8: 1-4 байта на символ, каждый байт как %XX (3 байта). Оптимизация: 1) Использовать POST-запросы для передачи больших объёмов данных. 2) Рассмотреть использование формата JSON (без необходимости кодирования URL).

Q: В чём разница между кодированием URL и кодированием HTML-сущностей?

A: Кодирование URL и кодирование HTML-сущностей используются в разных сценариях. Кодирование URL: 1) Цель: Передача специальных символов в URL. 2) Формат: %XX (например, %20). 3) Сценарии: Параметры URL, отправка форм. Кодирование HTML-сущностей: 1) Цель: Отображение специальных символов в HTML. 2) Формат: &name; (например, &lt;) или &#number; (например, &#60;). 3) Сценарии: HTML-контент, значения атрибутов. Пример: < → Кодирование URL: %3C, HTML-сущность: &lt; или &#60;.

Use Cases

Рекомендуется: Параметры запроса URL

Передача параметров в строках запроса URL является наиболее распространённым применением кодирования URL. Строки запроса начинаются с ?, параметры разделяются &, а имена и значения параметров соединяются =. Если значения параметров содержат специальные символы (пробелы, &, = и т.д.), они должны быть закодированы в URL. Использование encodeURIComponent() JavaScript правильно кодирует значения параметров.

Recommended Configuration:
  • ✅ Использовать encodeURIComponent() для кодирования значений параметров
  • ✅ Использовать API URLSearchParams для построения строк запроса
  • ✅ Сервер использует соответствующие функции декодирования
  • ❌ Не вручную конкатенировать параметры URL
  • 💡 Рассмотреть POST-запросы для больших объёмов данных
Рекомендуется: Отправка HTML-форм

HTML-формы отправляют данные с кодированием application/x-www-form-urlencoded, вариантом кодирования URL. Данные формы отправляются в формате key=value&key=value, пробелы кодируются как +, другие специальные символы как %XX. Современные браузеры автоматически обрабатывают кодирование форм; разработчикам обычно не нужно кодировать вручную. Однако при построении данных формы с использованием JavaScript (например, Fetch API) требуется ручное кодирование.

Recommended Configuration:
  • ✅ Использовать API FormData для автоматической обработки кодирования
  • ✅ Использовать URLSearchParams для построения данных формы
  • ✅ Сервер правильно декодирует данные формы
  • 💡 Для загрузки файлов использовать multipart/form-data
Рекомендуется: Параметры пути RESTful API

В RESTful API идентификаторы ресурсов могут содержать специальные символы (пробелы, косые черты), требующие кодирования URL. Например, /users/Иван Иванов должен быть закодирован как /users/%D0%98%D0%B2%D0%B0%D0%BD%20%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2. Используйте encodeURIComponent() для кодирования параметров пути, гарантируя, что API сможет правильно разобрать идентификаторы ресурсов.

Recommended Configuration:
  • ✅ Использовать encodeURIComponent() для кодирования параметров пути
  • ✅ Сервер правильно декодирует параметры пути
  • ✅ Рассмотреть использование ID вместо имён в качестве идентификаторов ресурсов
  • 💡 Использовать библиотеки URL-шаблонов (например, path-to-regexp)
Рекомендуется: OAuth-аутентификация

Параметры, такие как redirect_uri и state в потоках OAuth-аутентификации, требуют кодирования URL. Например, redirect_uri обычно представляет собой полный URL, содержащий параметры запроса, который нужно закодировать целиком перед передачей в качестве значения параметра. Используйте encodeURIComponent() для кодирования этих параметров, гарантируя, что OAuth-сервер сможет правильно их разобрать.

Recommended Configuration:
  • ✅ Использовать encodeURIComponent() для кодирования redirect_uri
  • ✅ Использовать encodeURIComponent() для кодирования параметра state
  • ✅ Проверять, что декодированный redirect_uri является допустимым
  • 💡 Использовать OAuth-библиотеки (например, Passport.js) для автоматической обработки
Рекомендуется: Запросы к поисковым системам

Поисковые ключевые слова требуют кодирования URL при передаче в URL. Например, поиск в Google “привет мир” имеет URL https://www.google.com/search?q=привет+мир. Поисковые системы автоматически обрабатывают кодирование URL; пользователям обычно не нужно кодировать вручную. Однако при построении URL поиска (например, автоматические перенаправления) следует использовать encodeURIComponent() для кодирования поисковых ключевых слов.

Recommended Configuration:
  • ✅ Использовать encodeURIComponent() для кодирования поисковых ключевых слов
  • ✅ Обрабатывать несколько ключевых слов (разделённых пробелами или +)
  • ✅ Рассмотреть использование API поисковых систем
  • 💡 Использовать URLSearchParams для построения URL поиска
Рекомендуется: Сервисы сокращения URL

Сервисы сокращения URL (например, bit.ly) должны кодировать длинные URL перед их хранением и передачей. Длинные URL могут содержать специальные символы (например, параметры запроса), требующие кодирования URL. Используйте encodeURIComponent() для кодирования длинных URL, гарантируя, что сервис сокращения сможет правильно разобрать и восстановить их. Обратите внимание, что сервисы сокращения обычно снова кодируют закодированный URL, поэтому декодирование может потребовать нескольких проходов.

Recommended Configuration:
  • ✅ Использовать encodeURIComponent() для кодирования длинных URL
  • ✅ Проверять, что декодированные URL являются допустимыми
  • ✅ Обрабатывать случаи множественного кодирования
  • 💡 Использовать API сервисов сокращения

Рекомендации по лучшим практикам

  • Использовать encodeURIComponent() для кодирования значений параметров URL, encodeURI() для кодирования полных URL.
  • Пробелы в строках запроса кодируются как +, в путях как %20; использовать encodeURIComponent() для единообразного кодирования как %20.
  • Не-ASCII символы используют кодировку UTF-8; убедитесь, что сервер правильно декодирует.
  • Не вручную конкатенировать параметры URL; использовать API URLSearchParams или API FormData для автоматической обработки кодирования.
  • Кодирование URL увеличивает размер данных; для больших объёмов данных использовать POST-запросы или формат JSON.
  • Проверять допустимость декодированных URL для предотвращения атак внедрения URL.

Обсуждение и отзывы

0 комментариев
Я