From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../reference/global_objects/encodeuri/index.html | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/encodeuri/index.html (limited to 'files/ru/web/javascript/reference/global_objects/encodeuri') diff --git a/files/ru/web/javascript/reference/global_objects/encodeuri/index.html b/files/ru/web/javascript/reference/global_objects/encodeuri/index.html new file mode 100644 index 0000000000..9b6c6d7382 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/encodeuri/index.html @@ -0,0 +1,139 @@ +--- +title: encodeURI() +slug: Web/JavaScript/Reference/Global_Objects/encodeURI +tags: + - JavaScript + - NeedsUpdate + - Reference + - URI +translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI +--- +
+
+
{{jsSidebar("Objects")}}
+
+
+ +

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

+ + + +

{{EmbedInteractiveExample("pages/js/globalprops-encodeuri.html")}}

+ + + + + +

Синтаксис

+ +
encodeURI(URI)
+ +

Параметры

+ +
+
URI
+
Полный {{Glossary("URI")}}.
+
+

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

+ +

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

+
+
+ +

Описание

+ +

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

+ +

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

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

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

+ +

Замечание: {{jsxref("Global_Objects/URIError", "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.StandardInitial definition.
{{SpecName('ES5.1', '#sec-15.1.3.3', 'encodeURI')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-encodeuri-uri', 'encodeURI')}}{{Spec2('ES6')}}
+ +

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

+ + + + + +

{{Compat("javascript.builtins.encodeURI")}}

+ + + + + +

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

+ + -- cgit v1.2.3-54-g00ecf