URL Encoding Кодировать & Декодировать
Бесплатный онлайн-инструмент URL Encoding Кодировать & Декодировать. 100% локальная обработка — ваши данные никогда не покидают устройство.
Результат будет отображен здесь...
Ввод → Закодировать
Usage Guide
О кодировании URL
Кодирование URL (также известное как процентное кодирование, определённое в RFC 3986) — это метод кодирования, который преобразует специальные символы в URL в безопасные символы. URL допускают только подмножество символов ASCII (буквы, цифры и несколько специальных символов); другие символы (например, пробелы, кириллица, специальные знаки) должны быть закодированы перед использованием в URL. Кодирование URL преобразует каждый байт в формат %XX, где XX — шестнадцатеричное представление этого байта. Кодирование URL является основой веб-разработки и широко используется в параметрах URL, отправке форм, HTTP-запросах и других сценариях.
Шаги использования
Кодирование и декодирование URL очень просто:
Правила кодирования
Кодирование URL следует этим правилам:
encodeURIComponent() JavaScript правильно обрабатывает большинство случаев.Примеры распространённых кодировок
Вот URL-кодировки для некоторых распространённых символов:
Сценарии применения
Кодирование 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; (например, <) или &#number; (например, <). 3) Сценарии: HTML-контент, значения атрибутов. Пример: < → Кодирование URL: %3C, HTML-сущность: < или <.
Use Cases
Рекомендуется: Параметры запроса URL
Передача параметров в строках запроса URL является наиболее распространённым применением кодирования URL. Строки запроса начинаются с ?, параметры разделяются &, а имена и значения параметров соединяются =. Если значения параметров содержат специальные символы (пробелы, &, = и т.д.), они должны быть закодированы в URL. Использование encodeURIComponent() JavaScript правильно кодирует значения параметров.
- ✅ Использовать encodeURIComponent() для кодирования значений параметров
- ✅ Использовать API URLSearchParams для построения строк запроса
- ✅ Сервер использует соответствующие функции декодирования
- ❌ Не вручную конкатенировать параметры URL
- 💡 Рассмотреть POST-запросы для больших объёмов данных
Рекомендуется: Отправка HTML-форм
HTML-формы отправляют данные с кодированием application/x-www-form-urlencoded, вариантом кодирования URL. Данные формы отправляются в формате key=value&key=value, пробелы кодируются как +, другие специальные символы как %XX. Современные браузеры автоматически обрабатывают кодирование форм; разработчикам обычно не нужно кодировать вручную. Однако при построении данных формы с использованием JavaScript (например, Fetch API) требуется ручное кодирование.
- ✅ Использовать 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 сможет правильно разобрать идентификаторы ресурсов.
- ✅ Использовать encodeURIComponent() для кодирования параметров пути
- ✅ Сервер правильно декодирует параметры пути
- ✅ Рассмотреть использование ID вместо имён в качестве идентификаторов ресурсов
- 💡 Использовать библиотеки URL-шаблонов (например, path-to-regexp)
Рекомендуется: OAuth-аутентификация
Параметры, такие как redirect_uri и state в потоках OAuth-аутентификации, требуют кодирования URL. Например, redirect_uri обычно представляет собой полный URL, содержащий параметры запроса, который нужно закодировать целиком перед передачей в качестве значения параметра. Используйте encodeURIComponent() для кодирования этих параметров, гарантируя, что OAuth-сервер сможет правильно их разобрать.
- ✅ Использовать encodeURIComponent() для кодирования redirect_uri
- ✅ Использовать encodeURIComponent() для кодирования параметра state
- ✅ Проверять, что декодированный redirect_uri является допустимым
- 💡 Использовать OAuth-библиотеки (например, Passport.js) для автоматической обработки
Рекомендуется: Запросы к поисковым системам
Поисковые ключевые слова требуют кодирования URL при передаче в URL. Например, поиск в Google “привет мир” имеет URL https://www.google.com/search?q=привет+мир. Поисковые системы автоматически обрабатывают кодирование URL; пользователям обычно не нужно кодировать вручную. Однако при построении URL поиска (например, автоматические перенаправления) следует использовать encodeURIComponent() для кодирования поисковых ключевых слов.
- ✅ Использовать encodeURIComponent() для кодирования поисковых ключевых слов
- ✅ Обрабатывать несколько ключевых слов (разделённых пробелами или +)
- ✅ Рассмотреть использование API поисковых систем
- 💡 Использовать URLSearchParams для построения URL поиска
Рекомендуется: Сервисы сокращения URL
Сервисы сокращения URL (например, bit.ly) должны кодировать длинные URL перед их хранением и передачей. Длинные URL могут содержать специальные символы (например, параметры запроса), требующие кодирования URL. Используйте encodeURIComponent() для кодирования длинных URL, гарантируя, что сервис сокращения сможет правильно разобрать и восстановить их. Обратите внимание, что сервисы сокращения обычно снова кодируют закодированный URL, поэтому декодирование может потребовать нескольких проходов.
- ✅ Использовать encodeURIComponent() для кодирования длинных URL
- ✅ Проверять, что декодированные URL являются допустимыми
- ✅ Обрабатывать случаи множественного кодирования
- 💡 Использовать API сервисов сокращения
Рекомендации по лучшим практикам
- Использовать encodeURIComponent() для кодирования значений параметров URL, encodeURI() для кодирования полных URL.
- Пробелы в строках запроса кодируются как +, в путях как %20; использовать encodeURIComponent() для единообразного кодирования как %20.
- Не-ASCII символы используют кодировку UTF-8; убедитесь, что сервер правильно декодирует.
- Не вручную конкатенировать параметры URL; использовать API URLSearchParams или API FormData для автоматической обработки кодирования.
- Кодирование URL увеличивает размер данных; для больших объёмов данных использовать POST-запросы или формат JSON.
- Проверять допустимость декодированных URL для предотвращения атак внедрения URL.