Codifica dell'URL

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Alcuni caratteri non possono far parte di un URL (ad esempio lo spazio), mentre altri hanno un significato speciale. Nei moduli HTML, il carattere = viene utilizzato per separare un nome da un valore. La sintassi generica dell'URI utilizza la codifica dell'URL per risolvere questo problema, mentre i moduli HTML apportano alcune sostituzioni aggiuntive invece di applicare la codifica percentuale per tutti questi caratteri.

Ad esempio, gli spazi in una stringa sono codificati con %20 o sostituiti con il segno più (+). Se utilizzi una barra verticale (|) come separatore, assicurati di codificare la barra verticale come %7C. Una virgola in una stringa deve essere codificata come %2C.

Ti consigliamo di utilizzare le librerie di creazione degli URL standard della piattaforma per codificare automaticamente gli URL, al fine di assicurarti che gli URL vengano correttamente sottoposti a escape per la tua piattaforma.

Creare un URL valido

Puoi pensare che un URL "valido" sia evidente, ma non è così. Un URL inserito all'interno di una barra degli indirizzi in un browser, ad esempio, può contenere caratteri speciali (ad esempio "上海+中國"); il browser deve tradurre internamente tali caratteri in una codifica diversa prima della trasmissione. Allo stesso modo, qualsiasi codice che genera o accetta l'input UTF-8 potrebbe trattare gli URL con caratteri UTF-8 come "validi", ma dovrebbe anche tradurre tali caratteri prima di inviarli a un server web. Questa procedura è chiamata codifica degli URL o codifica percentuale.

Caratteri speciali

Dobbiamo tradurre caratteri speciali perché tutti gli URL devono essere conformi alla sintassi specificata dalla specifica Uniform Resource Identifier (URI). Di conseguenza, gli URL devono contenere solo un sottoinsieme speciale di caratteri ASCII: i simboli alfanumerici conosciuti e alcuni caratteri riservati da utilizzare come caratteri di controllo negli URL. Questa tabella riassume questi caratteri:

Riepilogo dei caratteri dell'URL validi
ImpostacarattereUtilizzo URL
Alfanumerico a b c d e f g h i j k l m n o p r s t u v w x y A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 Stringhe di testo, utilizzo dello schema (http), porta (8080) e così via.
Non prenotato - _ . ~ Stringhe di testo
Riservata ! * ' ( ) ; : @ & = + $ , / ? % # [ ] Caratteri di controllo e/o stringhe di testo

Quando crei un URL valido, devi assicurarti che contenga solo i caratteri riportati nella tabella Riepilogo dei caratteri dell'URL validi. La conformità di un URL per l'utilizzo di questo set di caratteri comporta in genere due problemi, uno di omissione e uno di sostituzione:

  • I caratteri che vuoi gestire esistono al di fuori dell'insieme sopra indicato. Ad esempio, i caratteri in lingue straniere come 上海+中國 devono essere codificati utilizzando i caratteri sopra indicati. Per convenzione comune, gli spazi (non consentiti negli URL) sono spesso rappresentati utilizzando anche il carattere più '+'.
  • I caratteri all'interno del precedente sono impostati come caratteri riservati, ma devono essere utilizzati letteralmente. Ad esempio, il parametro ? viene utilizzato all'interno degli URL per indicare l'inizio della stringa di query. Se vuoi utilizzare la stringa "? e i misteri", devi codificare il carattere '?'.

Tutti i caratteri da codificare per URL vengono codificati con un carattere '%' e un valore esadecimale di due caratteri corrispondente al loro carattere UTF-8. Ad esempio, 上海+中國 in UTF-8 verrebbe codificato tramite URL come %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B. La stringa ? and the Mysterians sarà codificata come URL come %3F+and+the+Mysterians o %3F%20and%20the%20Mysterians.

Caratteri comuni che richiedono una codifica

Ecco alcuni caratteri comuni che devono essere codificati:

Carattere non sicuro Valore codificato
SPAZIO %20
" %22
< %3C
> %3E
# %23
% %25
| %7C

La conversione di un URL che ricevi dall'input utente a volte è complessa. Ad esempio, un utente potrebbe inserire un indirizzo come "5th&Main St.". In genere, devi creare l'URL dalle sue parti, considerando qualsiasi input utente come caratteri letterali.

Inoltre, gli URL sono limitati a 8192 caratteri per tutti i servizi web di Google Maps Platform e le API web statiche. Per la maggior parte dei servizi, questo limite di caratteri raramente si avvicina. Tuttavia, tieni presente che alcuni servizi hanno diversi parametri che potrebbero comportare URL lunghi.