JavaScript | encodeURI (), decodeURI () и его компоненты функции
Кодирование и декодирование компонентов URI и URI - обычная задача в веб-разработке при выполнении запроса GET к API с параметрами запроса. Часто создавайте строку URL-адреса с параметрами запроса, и для ее понимания серверу ответа необходимо декодировать этот URL-адрес. Браузеры автоматически кодируют URL-адрес, т.е. он преобразует некоторые специальные символы в другие зарезервированные символы, а затем выполняет запрос. Например: пробел «» преобразуется либо в +, либо в% 20.
Пример:
- Откройте www.google.com и введите поисковый запрос «Компьютерщики для компьютерных фанатов».
- После появления результатов поиска обратите внимание на адресную строку браузера. URL-адрес браузера будет содержать знак% 20 или + вместо пробела.
- URL будет выглядеть так: https://www.google.com/search?q=geeks%20for%20geeks или https://www.google.com/search?q=geeks+for+geeks.
Примечание. Браузер автоматически преобразовал пробелы в знак + или% 20.
Есть много других специальных символов, и преобразовывать каждый из них жестким кодом будет утомительно. JavaScript предоставляет следующие функции для выполнения этой задачи:
encodeURI ()
Функция encodeURI () используется для кодирования полного URI. Эта функция кодирует специальный символ, кроме символов (, /?: @ & = + $ #).
Синтаксис:
encodeURI (complete_uri_string)
Параметры: эта функция принимает единственный параметр complete_uri_string, который используется для хранения URL-адреса, который будет закодирован.
Возвращаемое значение: эта функция возвращает закодированный URI.
Пример:
<script> const encodedURL = encodeURI(url); document.write(encodedURL) </script> |
Выход:
https://www.google.com/search?q=geeks%20for%20geeks
encodeURIComponent ()
Функция encodeURIComponent () используется для кодирования некоторых частей или компонентов URI. Эта функция кодирует специальные символы. Кроме того, он кодирует следующие символы:, /? : @ & = + $ #
Синтаксис:
encodeURIComponent (uri_string_component)
Параметры:: Эта функция принимает единственный параметр uri_string_component, который используется для хранения строки, которую необходимо закодировать.
Возвращаемое значение: эта функция возвращает закодированную строку.
Пример:
<script> const component = "geeks for geeks" const encodedComponent = encodeURIComponent(component); document.write(encodedComponent) </script> |
Выход:
вундеркинды% 20 на% 20 гики
декодирует ()
Функция decodeURI () используется для декодирования URI, сгенерированного encodeURI ().
Синтаксис:
decodeURI (complete_encoded_uri_string)
Параметры: эта функция принимает единственный параметр complete_encoded_uri_string, который содержит закодированную строку.
Возвращаемое значение: эта функция возвращает декодированную строку (исходную строку).
Пример:
<script> const decodedURL = decodeURI(url); document.write(decodedURL) </script> |
Выход:
https://www.google.com/search?q=geeks для компьютерных фанатов
decodeURIComponent ()
Функция decodeURIComponent () используется для декодирования некоторых частей или компонентов URI, сгенерированных encodeURIComponent ().
Синтаксис:
decodeURIComponent (encoded_uri_string_component)
Параметры: эта функция принимает один параметр encoded_uri_string_component, который содержит закодированную строку.
Возвращаемое значение: эта функция возвращает декодированный компонент строки URI.
Пример:
<script> const component = "geeks%20for%20geeks" const decodedComponent = decodeURIComponent(component); document.write(decodedComponent) </script> |
Выход:
вундеркинды для вундеркиндов
Приложения:
- Чтобы правильно преобразовать параметры запроса, разделенные пробелами, предоставленные API.
- В веб-парсинге для декодирования параметров запроса URL для извлечения удобочитаемых строк.