Questo non si applica solo alla e commerciale negli URL, ma a tutti i caratteri riservati . Alcuni dei quali includono:
# $ & + , / : ; = ? @ [ ]
L'idea è la stessa della codifica di un &
in un documento HTML, ma il contesto è cambiato per essere all'interno dell'URI, oltre a essere all'interno del documento HTML. Pertanto, la codifica percentuale impedisce problemi con l'analisi all'interno di entrambi i contesti.
Il luogo in cui ciò è molto utile è quando è necessario inserire un URL all'interno di un altro URL. Ad esempio, se si desidera pubblicare uno stato su Twitter:
http://www.twitter.com/intent/tweet?status=What%27s%20up%2C%20StackOverflow%3F(http%3A%2F%2Fwww.stackoverflow.com)
Ci sono molti caratteri riservati nel mio Tweet, vale a dire ?'():/
, quindi ho codificato l'intero valore del status
parametro URL. Ciò è utile anche quando si utilizzano mailto:
collegamenti che hanno un corpo o un oggetto del messaggio, poiché è necessario codificare i parametri body
e subject
per mantenere intatte le interruzioni di linea, le e commerciali, ecc.
Quando un personaggio del set riservato (un "carattere riservato") ha un significato speciale (uno "scopo riservato") in un determinato contesto e uno schema URI dice che è necessario usare quel personaggio per qualche altro scopo, quindi il personaggio deve essere codificato in percentuale. La codifica in percentuale di un carattere riservato comporta la conversione del carattere nel corrispondente valore di byte in ASCII e la rappresentazione di quel valore come coppia di cifre esadecimali. Le cifre, precedute da un segno di percentuale ("%") che viene utilizzato come carattere di escape, vengono quindi utilizzate nell'URI al posto del carattere riservato. (Per un carattere non ASCII, viene in genere convertito nella sua sequenza di byte in UTF-8, quindi ogni valore di byte è rappresentato come sopra.) Il carattere riservato "/", ad esempio, se utilizzato nel "percorso" componente di un URI, ha il significato speciale di essere un delimitatore tra segmenti di percorso. Se, secondo un determinato schema URI, "/" deve trovarsi in un segmento di percorso, i tre caratteri "% 2F" o "% 2f" devono essere utilizzati nel segmento anziché un "/" non elaborato.
http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters