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

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

Синтаксис

encodeURI(str)

Параметры

str
Строка. Компонент 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' в этой спецификации.
Стандарт  

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

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Да) (Да) (Да) (Да) (Да)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Да) (Да) (Да) (Да) (Да) (Да)

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

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

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