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

Sommario

La funzione encodeURI() codifica un {{Glossary("URI")}} sostituendo alcuni specifici caratteri con una, due, tre o quattro sequenze di escape, che rappresentano il carattere codificato in {{Glossary("UTF-8")}} (le sequenze di quattro caratteri di escape verrano solo create per i caratteri composti da due caratteri "surrogati").

Sintassi

encodeURI(uri)

Parametri

uri
Un {{Glossary("URI")}} completo.

Descrizione

Questa funzione assume che uri sia un {{Glossary("URI")}} completo, quindi non codifica i caratteri riservati che hanno un significato particolare nell'{{Glossary("URI")}}.

encodeURI sostituisce tutti i caratteri con la sequenza di escape UTF-8 appropriata, ecceto i seguenti:

Tipo Caratteri
Caratteri riservati ; , / ? : @ & = + $
Caratteri non codificati lettere, cifre, - _ . ! ~ * ' ( )
Score #

encodeURI non prepara una richiesta HTTP GET o POST, ad esempio per {{domxref("XMLHttpRequest")}}, perché "&", "+" e "=" non vengono codificati, ma sono trattati come caratteri speciali nelle richieste GET e POST. Se è necessario codificarli, usare la funzione {{jsxref("Global_Objects/encodeURIComponent", "encodeURIComponent()")}}.

Se si tenta di codificare un surrogato che non è parte di una coppia, verrà generato un {{jsxref("Global_Objects/URIError", "URIError")}}.

// Coppia surrogata: Ok
encodeURI("\uD800\uDFFF");

// Solo il primo carattere surrogato:
// Viene generato un "URIError: malformed URI sequence"
encodeURI("\uD800");

// Solo il secondo carattere surrogato:
// Viene generato un "URIError: malformed URI sequence"
encodeURI("\uDFFF"); 

Se uno desidera seguire il più recente standard per gli {{Glossary("URL")}} RFC3986, nel quale le parentesi quadre sono caratteri riservati (per gli indirizzi {{Glossary("IPv6")}}), può essere utile il seguente codice:

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

Specifiche

Specifica Stato Commenti
ECMAScript 3rd Edition. Standard Definizione iniziale.
{{SpecName('ES5.1', '#sec-15.1.3.3', 'encodeURI')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-encodeuri-uri', 'encodeURI')}} {{Spec2('ES6')}}  

Compatibilità con i browser

{{ CompatibilityTable() }}

Funzionalità Chrome Firefox (Gecko) Internet Explorer Opera Safari
Supporto di base {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }}
Funzionalità Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Supporto di base {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }} {{ CompatVersionUnknown() }}

Vedi anche