| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/encodeURI | [Back] [Original] |
Get to know MDN better
Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julho de 2015.
A funo encodeURI() codifica a URI substituindo cada instncia de certos caracteres por um, dois, trs ou quatro sequncias de escape representando a codificao UTF-8 do caracter (ser somente quatro sequncias de escape para caracteres compostos de dois caracteres substitutos).
const uri = "https://mozilla.org/?x=";
const encoded = encodeURI(uri);
console.log(encoded);
// Expected output: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
try {
console.log(decodeURI(encoded));
// Expected output: "https://mozilla.org/?x="
} catch (e) {
// Catches a malformed URI
console.error(e);
}
encodeURI(URI)
URIUma URI completa.
Uma nova cadeia de caracteres representando a cadeia de caracteres provida, codificada como uma URI.
A funo encodeURI() no 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 so 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() no codifica caracteres que so necessrios para formular uma URI completa. Tambm, encodeURI() no codifica alguns caracteres adicionais, conhecidos como "marcas no reservadas (unreserved marks)", que no tem propsito reservado mas so permitidos na URI "como so". (Veja RFC2396)
encodeURI() escapa todos os caracteres exceto:
No escapado:
A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #
encodeURI() se difere de encodeURIComponent() como a seguir:
var set1 = ";,/?:@&=+$#"; // Caracteres reservados
var set2 = "-_.!~*'()"; // Marcas no reservadas
var set3 = "ABC abc 123"; // Caracteres alfanumricos + Espao
console.log(encodeURI(set1)); // ;,/?:@&=+$#
console.log(encodeURI(set2)); // -_.!~*'()
console.log(encodeURI(set3)); // ABC%20abc%20123 (o espao 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 espao codificado como %20)
Note que encodeURI() por si s no pode formar requisies GET e POST, como para XMLHttpRequest, porque "&", "+", e "=" no so codificados, que so tratados como caracteres especiais em requisies GET e POST. encodeURIComponent(), entretanto, codifica esses caracteres.
Um URIError ser jogado se uma tentativa de codificar um substituto que no parte de um par alto-baixo, e.g.,
// par alto-baixo ok
console.log(encodeURI("\uD800\uDFFF"));
// substituto alto solitrio joga "URIError: malformed URI sequence"
console.log(encodeURI("\uD800"));
// substituto baixo solitrio joga "URIError: malformed URI sequence"
console.log(encodeURI("\uDFFF"));
Se voc deseja seguir a RFC3986 mais recente para URLs, que faz colchetes ser reservado (para IPv6) e ento no ser codificado quando formando algo que possa ser parte da URL (como o host), o seguinte cdigo pode ajudar:
function fixedEncodeURI(str) {
return encodeURI(str).replace(/%5B/g, "[").replace(/%5D/g, "]");
}
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-encodeuri-uri |
This page was last modified on 22 de mai. de 2026 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |