100 % locale — i tuoi dati non lasciano mai il tuo browser

Unescape XML — leggi uno snippet escapato

Decodifica le cinque entità XML e i riferimenti numerici in testo, in un solo passaggio: leggi ciò che il documento portava davvero con sé.

Istantaneo Privato Zero cookie

Input XML Escaped

Output Text

Cosa fa questo strumento

Decodifica le cinque entità che XML predefinisce — &, <, >, " e ' — insieme ai riferimenti numerici di carattere in entrambe le forme: decimale A ed esadecimale A, anche oltre U+FFFF, così che 😀 ritorni la sua emoji.

I nomi di entità distinguono maiuscole e minuscole, come XML richiede: & viene decodificata, & no. Un riferimento ha bisogno anche del punto e virgola: &amp senza è testo ordinario e tale resta.

Una sola passata, di proposito

La decodifica avviene esattamente una volta. &amp;lt; dà &lt; e non <, perché &amp;lt; è la forma con escape del testo letterale &lt; e quel testo è la risposta giusta.

Eseguire la decodifica una seconda volta è ciò che riporta il markup con escape a markup attivo: il passaggio dietro un’intera classe di falle di injection. Se il tuo valore è davvero codificato due volte, reincolla il risultato e decodifica di nuovo, come decisione tua e non dello strumento.

Cosa non fa

Le entità con nome di HTML sono fuori perimetro. &nbsp;, &copy; e le altre migliaia appartengono a HTML, non a XML, e tornano intatte.

I riferimenti numerici non validi vengono conservati alla lettera anziché sostituiti. Un punto di codice surrogato (&#xD800;) o un valore oltre U+10FFFF (&#99999999;) non può corrispondere ad alcun carattere, e restituire il riferimento invariato mantiene l’input recuperabile invece di perderlo in silenzio. Lo stesso vale per ogni carattere che XML 1.0 non può proprio rappresentare — NUL, quasi tutti i caratteri di controllo, i non caratteri U+FFFE e U+FFFF: &#0; e &#xFFFF; tornano come sono scritti. Decodificarli ti restituirebbe un documento che nessun parser XML accetta.

Privato per progettazione

Tutto viene eseguito localmente nel browser con JavaScript. I tuoi dati non vengono mai caricati, quindi lo strumento è sicuro per contenuti sensibili e funziona anche offline.

Domande frequenti

Perché `&nbsp;` resta com’è?
Perché non è un’entità XML. XML ne predefinisce esattamente cinque — `&amp;`, `&lt;`, `&gt;`, `&quot;` e `&apos;` — tutto il resto è di HTML. Per quelle usa lo strumento dedicato alle entità HTML.
Perché `&amp;lt;` dà `&lt;` e non `<`?
Perché la decodifica avviene una volta sola, di proposito. `&amp;lt;` è la forma con escape del testo `&lt;`, quindi una passata è la risposta giusta; decodificare due volte è ciò che riporta il markup con escape a markup attivo.
Cosa succede a un riferimento numerico non valido?
Torna esattamente come è scritto. Un punto di codice surrogato come `&#xD800;` o un valore fuori intervallo come `&#99999999;` non ha alcun carattere in cui decodificarsi, quindi il riferimento viene conservato anziché sostituito da un segnaposto.

Convertitori correlati