Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Метод encodeURI () кодирует универсальный идентификатор ресурса (URI), замещая некоторые символы на одну, две, три или четыре управляющие последовательности, представляющие UTF-8 кодировку символа (будет только четыре управляющие последовательности для символов, состоящих из двух «суррогатных» символов).

 

 

Синтаксис

encodeURI(URI)

Параметры

URI
Полный URI.

Возвращаемое значение

Новая строка, представляющая собой строку-параметр, закодированную в виде универсального идентификатора ресурса (URI).

Описание

Предполагается, что URI является полным URI, поэтому метод не кодирует зарезервированные символы, имеющие особое значение в URI.

encodeURI заменяет все символы, кроме следующих с соответствующими UTF-8 управляющими последовательностями:

Тип Включения
Зарезервированные символы ; , / ? : @ & = + $
Неэкранируемые символы латинские буквы, десятичные цифры, - _ . ! ~ * ' ( )
Score #

Заметим, что encodeURI сам по себе не может сформировать правильные HTTP GET и POST запросы, такие как XMLHTTPRequests, потому, что "&", "+", и "=" не закодированы, которые воспринимаются как специальные символы в GET и POST запросах. encodeURIComponent, однако, кодирует эти символы

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

// низко-высокая пара - нормально
console.log(encodeURIComponent('\uD800\uDFFF'));

// один высокий суррогат бросит "URIError: malformed URI sequence"
console.log(encodeURIComponent('\uD800'));

// один низкий суррогат бросит "URIError: malformed URI sequence"
console.log(encodeURIComponent('\uDFFF'));

Также заметим, что следуя наиболее свежей RFC3986 для URL, которая делает квадратные скобки защищенными (для IPv6) и таким образом не кодирует, когда формирование чего-либо, не являющегося частью URL (такое как домен), следующий сниппет поможет:

function fixedEncodeURI (str) {
    return encodeURI(str).replace(/%5B/g, '[').replace(/%5D/g, ']');
}

Спецификация

Спецификация Статус Комментарий
ECMAScript 3rd Edition. Standard Initial definition.
ECMAScript 5.1 (ECMA-262)
Определение 'encodeURI' в этой спецификации.
Стандарт  
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'encodeURI' в этой спецификации.
Стандарт  

Поддержка браузерами

 

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
encodeURIChrome Полная поддержка ДаEdge Полная поддержка ДаFirefox Полная поддержка 1IE Полная поддержка ДаOpera Полная поддержка ДаSafari Полная поддержка ДаWebView Android Полная поддержка ДаChrome Android Полная поддержка ДаEdge Mobile Полная поддержка ДаFirefox Android Полная поддержка 4Opera Android Полная поддержка ДаSafari iOS Полная поддержка ДаSamsung Internet Android Полная поддержка Даnodejs Полная поддержка Да

Легенда

Полная поддержка  
Полная поддержка

 

 

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: boxa6, mdnwebdocs-bot, gvammer, RuslanKurtjanyk, BychekRU, johniek
Обновлялась последний раз: boxa6,