Рубрики
Без рубрики

JavaScript Encodeuri Функция

За большую часть своей жизни JavaScript был языком только в браузере. Естественно, он имеет много встроенных функций, специфичных для браузеров, таких как строки кодирования, используя функцию Encodeuri.

Автор оригинала: Scott Robinson.

Для большого количества жизни JavaScript это был язык программирования только в браузере и не может работать на стороне сервера, как она может сейчас. Из-за этого JS имеет много встроенных функций, которые специфичны для браузерных функций, таких как строки кодирования для использования в URL. Некоторые из наиболее часто используемых функций:

  • encodeuri.
  • encodeuricomponent.
  • декодеур
  • декодеурикомапент
  • побег
  • unescape

Функция, которая является фокусом этой статьи, encodeuri используется для кодирования Однородный идентификатор ресурса (URI), так что персонажи, не предназначенные для использования в URI (как пространство), отформатированы правильно. Эти символы избежают использования процентное кодирование или кодирование URL-адреса, чтобы представлять нестандартные символы URI.

Процентное кодирование – это просто шестнадцатеричное представление символа ASCII, префиксированного процентами (%) характером. Так, например, процентное, кодирующее представление восклицательного знака (!) – % 21 С 21 – номер шестигранника ASCII для восклицательного знака.

С точки зрения использования случаев, скажем, ваш веб-сайт имеет строку поиска, а введенные запросы, используются для построения такого URL:

https://mysite.com/q=[SEARCH_QUERY]

В таком случае, как это, вполне вероятно, что пользователь вступит в строку, содержащую пространство (или другой зарезервированный символ), который не допускается в URL. Так что мы делаем, если пользователь вводит строку «веб-разработка», например? Мы не можем позволить любому персонажу в нашем URL. Вот где encodeuri приходит в:

> let query = 'web development';
> let searchUrl = 'https://mysite.com/q=' + query;
> encodeURI(searchUrl)
'https://mysite.com/q=web%20development'

Обратите внимание, как пространство было заменено на кодировку процентов, % 20 Отказ encodeuri Функция идеально подходит для этого, потому что она не избежит никаких других зарезервированных символов, как толстая кишка или пересылка. Это потому, что он ожидает получить полный URL в качестве ввода, в отличие от encodeuricomponent Вариация этой функции. URL прошел в encodeuri Может содержать любую допустимую часть схемы URL и не избежать, а другие зарезервированные или запрещенные символы кодируются:

> encodeURI('https://scott:[email protected]:443/my/file.html?stack=abuse#javascript')
'https://scott:[email protected]:443/my/file.html?stack=abuse#javascript'
> encodeURI('https://scott:[email protected]:443/my/file.html?stack="abuse"#javascript')
'https://scott:[email protected]:443/my/file.html?stack=%22abuse%22#javascript'

Обратите внимание, как не было никаких изменений, внесенных в URL в первый звонок выше. Это связано с тем, что все символы действительны в URL. Во втором вызове у нас есть несколько кавычек, которые недействительны и поэтому закодированы.

Следующие символы – не закодирован encodeuri независимо от того, где они расположены в URL: A-ZA-Z0-9;,/?: @ & = + $ -_.! ~ * '() #

Эта функция может даже обрабатывать закодирование символов не-ASCII, используя более длинную кодировку на основе UTF-8. Например, символ валюты евро (€) кодируется с использованием трех процентов-кодирования:

> encodeURI('€')
'%E2%82%AC'

Это позволяет для персонажей с любыми языками или специальными символами форматирования для передачи через URL-адреса.

Заключение

Встроенный JavaScript encodeuri Функция полезна для правильного форматирования URL-адресов или более полно, URI с безоговорочными символами ASCII или даже символы UTF-8. Следует использоваться в любое время пользовательского ввода в конструкции URL-адреса для обеспечения правильной отформатирования.

На другой стороне вещей у нас также есть декодери Встроенная функция, которая обрабатывает декодирование ценностей в процентах, которые мы посмотрим в другую статью.!