L'encoding dei caratteri HTML
L'encoding è un processo in base al quale taluni caratteri considerati "speciali" all'interno di un linguaggio, vengono "tradotti" in una sequenza di caratteri che prende il nome di entità (o entity in inglese) in modo da non essere interpretati (nel senso del linguaggio) ma, semplicemente, rappresentati graficamente.
Il processo di encoding è tipico dei linguaggi di markup come l'HTML, l'XML ed altri linguaggi da esso derivati.
Per fare un esempio relativo al linguagguio HTML si supponga di voler stampare a video, all'interno di una pagina web, la seguente stringa di testo:
<strong>grassetto</strong>
Se noi digitiamo i caratteri in questo modo all'interno del sorgente HTML (senza cioè effettuarne l'encoding) il risultato che otterremo sarà:
grassetto
In pratica il tag <strong> viene "elaborato" dal client che mostra la parola in bold (in grassetto, appunto).
Per stampare a video la stringa senza che il client la renderizzi, quindi, dovremo farne l'encoding: in pratica i caratteri < e > verranno trasformati nelle corrispondenti entità, in questo modo:
<strong>grassetto</strong>
Come potete vedere:
- < è diventato <
- > è diventato >
Questi due caratteri non sono, tuttavia, gli unici ad essere coinvolti nel processo di encoding del markup HTML. Oltre a questi, infatti, vengono convertiti altri caratteri. I più importanti sono:
- doppi apici (")
- "e" commerciale (&)
- spazio vuoto ( )
Come effettuare l'encoding di una stringa?
Praticamente tutti i linguaggi di scripting supportano funzioni di encoding oppure è possibile realizzarne una con poco sforzo. Di seguito un utile riferimento per alcuni dei linguaggi più popolari:
- PHP: htmlentities()
- ASP.Net: HttpUtility.HtmlEncode
- Classic ASP: Server.HTMLEncode
- Javascript: non possiede una funzione nativa, ma possiamo creare una funzione htmlentities in Javascript con poche righe di codice
Come utilizzare il tool on-line di encoding / decoding
L'utilizzo del tool presente in questa pagina è decisamente intuitivo: è sufficiente copiare all'interno dell'apposita textarea la stringa che si desidera convertire, selezionare il metodo (Encode o Decode) e poi premere sul pulsante. Verrà restituito il codice convertito in entità (Encode) o riconvertito in HTML (Decode).