--- title: encodeURI() slug: Web/JavaScript/Reference/Global_Objects/encodeURI translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI ---
{{jsSidebar("Objects")}}

O método encodeURI() codifica um Uniform Resource Identifier (URI) substituindo cada instancia de determinados caracteres por um, dois, três, ou quatro sequências de escape que representem a codificação UTF-8 do caracter (apenas serão quatro sequências de caracteres de escape para caracteres compostos por dois caracteres de "substituição").

Sintaxe

encodeURI(URI)

Parâmetros

URI
Um Uniform Resource Identifier completo.

Descrição

Assumindo que o URI é um URI completo, não serão codificados caracteres reservados que tenham significado especial no URI.

encodeURI substitui todos os caracteres excepto as seguintes sequências de escape UTF-8:

Tipo Incluído
Caracteres reservados ; , / ? : @ & = + $
Caracteres excluídos alfabéticos, dígitos decimais , - _ . ! ~ * ' ( )
Ponto #

Note-se que o método encodeURI não consegue criar correctamente os pedidos HTTP GET e POST, o mesmo aplica-se para XMLHTTPRequests, porque os caracteres "&", "+", e "=" não são codificados, por se tratarem de caracteres especiais nos pedidos GET e POST. {{jsxref("encodeURIComponent")}}, no entanto, codifica estes caracteres.

Note-se que será lançado um {{jsxref("URIError")}} caso se tente codificar um substituto que não faça parte de um par superior-inferior, p.ex.,

// par superior-inferior ok
console.log(encodeURI('\uD800\uDFFF'));

// substituição única de par superior lança "URIError: malformed URI sequence"
console.log(encodeURI('\uD800'));

// substituição única de par inferior lança "URIError: malformed URI sequence"
console.log(encodeURI('\uDFFF')); 

Note-se também que caso se pretenda seguir a mais recente norma para URLs RFC3986, que torna os parênteses rectos reservados (para IPv6) e, por consequência, não será codificado quando fizer parte de um URL (como um host), o seguinte exemplo de código pode ajudar:

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

Especificações

Especificação Estado Comentário
{{SpecName('ES3')}} {{Spec2('ES3')}} Initial definition.
{{SpecName('ES5.1', '#sec-15.1.3.3', 'encodeURI')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-encodeuri-uri', 'encodeURI')}} {{Spec2('ES6')}}  

Compatibilidade com navegador

{{CompatibilityTable}}

Funcionalidade Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte básico {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Funcionalidade Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suporte básico {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

Veja também