Кодирование/декодирование URL
Кодирование или декодирование URL-адресов и запрос строки
Что такое URL Кодировка?
URL-кодирование (также называемое процентным кодированием) преобразует специальные символы в формат, который может безопасно передаваться в URL-адресах. Поскольку URL-адреса могут содержать только ограниченный набор символов ASCII, любой символ вне этого набора должен быть закодирован как «%», за которым следуют две шестнадцатеричные цифры. представляющее значение ASCII символа.
Например, пробел становится %20, а @
символ становится %40. Это гарантирует
URL-адреса остаются действительными, и специальные символы не мешают структуре URL-адресов (например, & и =
в строках запроса).
Как использовать этот инструмент
Кодирование против Компонент кодирования
- Кодирование (encodeURI): Кодирует полный URL-адрес, сохраняющий допустимые символы URL-адреса, такие как :, /, ?, = и
- Компонент кодирования (encodeURIComponent): Кодирует все, кроме букв, цифр и - _. ! ~ * ' ( ). Используйте это для запроса значения параметров.
- Декодирование: Преобразует строки с процентным кодированием. вернуться к читаемому тексту
Общие случаи использования
🔗 Параметры строки запроса
При передаче пользовательского ввода через параметры URL-адреса кодировка предотвращает передачу специальных символов. нарушение структуры URL. Например, «name=John Doe&city=New York» требует кодировки. для помещений.
📧 Ссылки по электронной почте (mailto:)
При создании ссылок mailto со строками темы или основным текстом, специальными символами и пробелы должны быть закодированы для правильной работы во всех почтовых клиентах.
🔐 API Запросы
REST API часто требуют, чтобы значения параметров были закодированы в URL-адресе, особенно при отправке JSON. данные, токены аутентификации или поисковые запросы через запросы GET.
📊 Аналитика и отслеживание
Параметры UTM и коды отслеживания часто содержат закодированные значения, обеспечивающие точность данных. передача без ошибок анализа URL.
Распространенные кодировки символов
| Character | Encoded | Description |
|---|---|---|
| (space) | %20 or
+ |
Space character |
| & | %26 |
Ampersand |
| = | %3D |
Equals sign |
| ? | %3F |
Question mark |
| / | %2F |
Forward slash |
| @ | %40 |
At symbol |
| # | %23 |
Hash/pound |
| % | %25 |
Percent sign |
Часто задаваемые вопросы
В чем разница между encodeURI и encodeURIComponent?
encodeURI()
кодирует полный URL-адрес, сохраняя такие символы, как :, /, ? и &. encodeURIComponent()
кодирует все, что делает его пригодным для кодирования отдельных значений параметров запроса.
Должен ли я использовать %20 или + для пространства?
Оба представляют собой пробелы, но %20 — это стандартная кодировка URL-адреса, а + — это кодировка, специфичная для данных формы. (приложение/x-www-form-urlencoded). Для строк запроса работает любой вариант, но %20 лучше. универсально совместим.
Защищены ли мои данные, когда используя этот инструмент?
Да! Все кодирование и декодирование происходит в вашем браузере с использованием JavaScript. Ваши данные никогда покидает ваше устройство и никогда не отправляется на какой-либо сервер.
Почему я получаю сообщение «Ошибка: URI неправильный"?
Эта ошибка возникает при попытке декодировать недопустимую последовательность, закодированную в процентах. Убедитесь, что входные данные содержат допустимую кодировку (%, за которым следуют ровно две шестнадцатеричные цифры).
Лучшие практики
- Всегда кодируйте вводимые пользователем данные перед размещением их в URL-адресах.
- Используйте encodeURIComponent для значений параметров запроса, encodeURI для полных URL-адресов.
- Декодируйте URL-адреса перед их отображением пользователям для удобства чтения.
- Будьте единообразны при кодировании во всем приложении.
- Тестируйте URL-адреса со специальными символами в разных браузерах.