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 | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 files/pt-br/web/javascript/reference/global_objects/encodeuri/index.html (limited to 'files/pt-br/web/javascript/reference/global_objects/encodeuri') diff --git a/files/pt-br/web/javascript/reference/global_objects/encodeuri/index.html b/files/pt-br/web/javascript/reference/global_objects/encodeuri/index.html new file mode 100644 index 0000000000..362493efd9 --- /dev/null +++ b/files/pt-br/web/javascript/reference/global_objects/encodeuri/index.html @@ -0,0 +1,122 @@ +--- +title: encodeURI() +slug: Web/JavaScript/Reference/Global_Objects/encodeURI +tags: + - Codificação + - JavaScript + - Texto + - URI + - URL + - encodeURI + - metodo +translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI +--- +
{{jsSidebar("Objects")}}
+ +

A função encodeURI() codifica a URI substituindo cada instância de certos caracteres por um, dois, três ou quatro sequências de escape representando a codificação UTF-8 do caracter (será somente quatro sequências de escape para caracteres compostos de dois caracteres substitutos).

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

Sintaxe

+ +
encodeURI(URI)
+ +

Parâmetros

+ +
+
URI
+
Uma URI completa.
+
+ +

Valor de retorno

+ +

Uma nova cadeia de caracteres representando a cadeia de caracteres provida, codificada como uma URI.

+ +

Descrição

+ +

A função encodeURI() não codifica caracteres que possuem significado especial (caracteres reservados) para a URI. O exemplo seguinte mostra todas as partes que o "esquema" da URI pode possivelmente conter. Note como certos caracteres são usados para dar significado especial:

+ +
http://username:password@www.example.com:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor
+ +

Consequentemente, encodeURI() não codifica caracteres que são necessários para formular uma URI completa. Também, encodeURI() não codifica alguns caracteres adicionais, conhecidos como "marcas não reservadas (unreserved marks)", que não tem propósito reservado mas são permitidos na URI "como são". (Veja RFC2396)

+ +

encodeURI() escapa todos os caracteres exceto:

+ +
Não escapado:
+
+    A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #
+
+
+ +

Exemplos

+ +

encodeURI vs encodeURIComponent

+ +

encodeURI() se difere de {{jsxref("encodeURIComponent", "encodeURIComponent()")}} como a seguir:

+ +
var set1 = ";,/?:@&=+$#"; // Caracteres reservados
+var set2 = "-_.!~*'()";   // Marcas não reservadas
+var set3 = "ABC abc 123"; // Caracteres alfanuméricos + Espaço
+
+console.log(encodeURI(set1)); // ;,/?:@&=+$#
+console.log(encodeURI(set2)); // -_.!~*'()
+console.log(encodeURI(set3)); // ABC%20abc%20123 (o espaço é codificado como %20)
+
+console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24%23
+console.log(encodeURIComponent(set2)); // -_.!~*'()
+console.log(encodeURIComponent(set3)); // ABC%20abc%20123 (o espaço é codificado como %20)
+
+ +

Note que encodeURI() por si só não pode formar requisições GET e POST, como para XMLHttpRequest, porque "&", "+", e "=" não são codificados, que são tratados como caracteres especiais em requisições GET e POST. encodeURIComponent(), entretanto, codifica esses caracteres.

+ +

Codificando um substituto solitário alto joga

+ +

Um {{jsxref("URIError")}} será jogado se uma tentativa de codificar um substituto que não é parte de um par alto-baixo, e.g.,

+ +
// par alto-baixo ok
+console.log(encodeURI('\uD800\uDFFF'));
+
+// substituto alto solitário joga "URIError: malformed URI sequence"
+console.log(encodeURI('\uD800'));
+
+// substituto baixo solitário joga "URIError: malformed URI sequence"
+console.log(encodeURI('\uDFFF'));
+ +

Codificando para IPv6

+ +

Se você deseja seguir a RFC3986 mais recente para URLs, que faz colchetes ser reservado (para IPv6) e então não será codificado quando formando algo que possa ser parte da URL (como o host), o seguinte código pode ajudar:

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

Especificações

+ + + + + + + + + + + + +
Especificação
{{SpecName('ESDraft', '#sec-encodeuri-uri', 'encodeURI')}}
+ +

Compatibilidade de navegador

+ + + +

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

+ +

Veja também

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