Sommario
La funzione encodeURI()
codifica un URI sostituendo alcuni specifici caratteri con una, due, tre o quattro sequenze di escape, che rappresentano il carattere codificato in 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 URI completo.
Descrizione
Questa funzione assume che uri
sia un URI completo, quindi non codifica i caratteri riservati che hanno un significato particolare nell'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 XMLHttpRequest
, perché "&", "+" e "=" non vengono codificati, ma sono trattati come caratteri speciali nelle richieste GET e POST. Se è necessario codificarli, usare la funzione encodeURIComponent()
.
Se si tenta di codificare un surrogato che non è parte di una coppia, verrà generato un 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 URL RFC3986, nel quale le parentesi quadre sono caratteri riservati (per gli indirizzi 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. |
ECMAScript 5.1 (ECMA-262) The definition of 'encodeURI' in that specification. |
Standard | |
ECMAScript 6 (ECMA-262) The definition of 'encodeURI' in that specification. |
Release Candidate |
Compatibilità con i browser
Funzionalità | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Supporto di base | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Funzionalità | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Supporto di base | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |