Skip to content

Convertitore Unicode

Convertitore Unicode online: incolla escape \uXXXX, graffe ES6, code point U+ o byte UTF-8 — riconosce da solo la forma e ti dà il testo leggibile più tutte le altre scritture in una volta. Tutto nel browser, niente upload.

Niente tracciamento Funziona nel browser Gratuito

Tutto gira nel tuo browser: il tuo input non viene mai caricato, registrato o memorizzato.

0 caratteri
Testo leggibile
Qui comparirà il risultato
Normalizza
Tutte le scritture in una volta
JavaScript / Java / JSON uXXXX
ES6 u{XXXXX}
Python uXXXX / UXXXXXXXX
Go uXXXX / UXXXXXXXX
Rust u{XXXXX}
Code point U+XXXX
HTML decimale &#NNNNN;
HTML esadecimale &#xXXXX;
Codifica URL %XX
CSS XXXXXX
Byte UTF-8 hex
Unità UTF-16 hex
UTF-32 hex
Byte ottali NNN
Code point decimali NNNNN
Carattere per carattere
Carattere Code point UTF-8 UTF-16 Script Categoria Nome
Qui comparirà il risultato

Riferimento rapido

Carattere Code point JavaScript / Java / JSON Byte UTF-8 Codifica URL HTML decimale
中文 U+4E2D U+6587 \u4E2D\u6587 E4 B8 AD E6 96 87 %E4%B8%AD%E6%96%87 中文
😀 U+1F600 \uD83D\uDE00 F0 9F 98 80 %F0%9F%98%80 😀
A U+0041 A 41 A A
U+3000 U+3000 \u3000 E3 80 80 %E3%80%80  
Ogni conversione della tabella di riferimento è stata verificata da due implementazioni indipendenti prima della pubblicazione. — Team di ingegneria Go Tools · Aug 27, 2026

Comportamenti verificati su Node, Python, Java, Go e un motore di browser reale, non dedotti dalla documentazione.

Che cos'è un escape Unicode?

Un escape Unicode scrive un carattere usando solo caratteri ASCII, così la stringa attraversa senza danni i sistemi che non riuscirebbero a trasportare il carattere originale. Lo stesso carattere ha un escape diverso in quasi ogni linguaggio: JavaScript e JSON usano quattro cifre esadecimali per ogni unità di codice UTF-16, ES6 e Rust accettano il code point intero tra graffe, Python e Go aggiungono una forma larga a otto cifre, il CSS parte da una barra rovesciata nuda e l'HTML ha le sue entità numeriche e nominate. Descrivono tutti lo stesso code point, ed è per questo che la stessa stringa può arrivarti sotto una mezza dozzina di forme.

中文
  U+4E2D U+6587         code point
  \u4E2D\u6587          JavaScript / Java / JSON
  \u{4E2D}\u{6587}      ES6 / Rust
  E4 B8 AD E6 96 87     UTF-8
  %E4%B8%AD%E6%96%87    URL
  中文      HTML

Cosa fa questo convertitore

Riconosce la forma al posto tuo

Escape, graffe, escape larghi, code point, entità, percent-encoding e sequenze di byte vengono rilevati senza cambiare modalità.

Regge l'input misto

Cambiano solo le parti codificate. La punteggiatura JSON, i percorsi Windows e le barre rovesciate già sottoposte a escape restano come sono.

Tutte le scritture in una volta

Un solo incolla produce l'intera tabella, così non devi convertire due volte per passare da un linguaggio all'altro.

Correttezza linguaggio per linguaggio

I caratteri fuori dal BMP escono come escape largo per Python e Go, dove una coppia surrogata fallirebbe.

Ispezione carattere per carattere

Code point, byte UTF-8 e UTF-16, script e categoria per ogni carattere, più il nome Unicode dove esiste.

Fa emergere i caratteri invisibili

BOM, caratteri a larghezza zero e spazi unificatori ricevono un segnaposto visibile.

Esempi

Decodifica una riga di log senza toccare il resto

{"msg":"\u4e2d\u6587 failed","code":500}
{"msg":"中文 failed","code":500}

Cambiano solo le sequenze di escape. Virgolette, chiavi e numeri restano esattamente come erano, quindi puoi incollare l'intera riga di log invece di estrarre gli escape a mano.

Più forme mescolate in un unico incolla

U+4E2D  \u{1F600}  中  \ud83d\ude00
中  😀  中  😀

Un code point, un escape ES6 tra graffe, un'entità HTML e una coppia surrogata, decodificati in un solo passaggio. Non c'è niente da selezionare o configurare prima.

Un carattere, tutte le sue scritture

\u4E2D        JavaScript / Java / JSON
\u{4E2D}      ES6 / Rust
U+4E2D        code point
E4 B8 AD      UTF-8
\344\270\255  octal

Lo stesso carattere scritto come se lo aspetta ciascun linguaggio. Attenzione: Python e Go vogliono la forma larga per i caratteri fuori dal BMP, perché una coppia surrogata in Go non compila e in Python solleva UnicodeEncodeError.

Come si usa

  1. 1

    Incolla

    Butta dentro escape, code point, entità, byte codificati o testo normale. Non serve dire di che si tratta.

  2. 2

    Leggi il risultato

    Il testo leggibile compare subito, con l'indicazione di quali forme sono state riconosciute.

  3. 3

    Copia la forma che ti serve

    Sotto il risultato trovi tutte le scritture, ognuna con il suo pulsante di copia.

  4. 4

    Ispeziona se qualcosa non torna

    Apri la tabella dei caratteri per vedere code point, byte, script e nomi, e attiva Mostra caratteri invisibili per far emergere quelli nascosti.

Errori che vale la pena conoscere

Scrivere una coppia surrogata dove il linguaggio vuole un escape largo

Una coppia che funziona in JSON diventa due metà rotte in Python e in Go non compila proprio. Per i caratteri sopra U+FFFF usa la forma larga.

✗ Errato
\ud83d\ude00
✓ Corretto
\U0001F600

Decodificare le entità numeriche HTML come semplici code point

Le entità tra 128 e 159 vanno lette attraverso windows-1252. Un'implementazione ingenua trasforma una virgoletta singola destra in un carattere di controllo invisibile: è il motivo per cui in un vecchio export quei punti non mostrano proprio nulla.

✗ Errato
’  ->  U+0092
✓ Corretto
’  ->  U+2019

Usare un escape CSS corto davanti a un carattere esadecimale

Il parser continua a mangiare cifre esadecimali, così l'escape e il carattere successivo si fondono in un unico code point sbagliato. Portalo a sei cifre.

✗ Errato
\4E2Da
✓ Corretto
\004E2Da

Quando serve

Leggere i log
Log del server e risposte delle API arrivano spesso con il non-ASCII sottoposto a escape. Incolla la riga e la leggi senza doverla prima ripulire.
Spostare stringhe tra linguaggi
Copi l'escape nella forma esatta che il linguaggio di destinazione accetta, invece di convertire a mano tra coppie surrogate ed escape larghi.
Inseguire un bug di codifica
Quando un confronto fallisce o il database rifiuta un valore, la tabella dei caratteri mostra quali code point e quali byte sono davvero in gioco.
Ripulire testo incollato
Il testo copiato da una pagina web o da un documento porta spesso con sé caratteri invisibili. Trovali prima che arrivino in produzione.

Dettagli tecnici

Si fa escape delle unità di codice, non dei caratteri
JavaScript, Java e JSON fanno escape di unità di codice UTF-16, quindi un carattere sopra U+FFFF richiede due escape. Python e Go offrono invece una forma a otto cifre che prende direttamente il code point.
Le entità numeriche HTML vengono rimappate
La specifica HTML impone di leggere le entità numeriche nell'intervallo da 128 a 159 attraverso windows-1252 anziché come code point, quindi un riferimento come 146 è una virgoletta singola destra e non un carattere di controllo invisibile.
Gli escape CSS vanno riempiti
Un escape CSS consuma fino a sei cifre esadecimali, quindi un escape corto seguito da un carattere esadecimale si fonde in un unico code point sbagliato. Portarlo a sei cifre elimina l'ambiguità, e uno spazio subito dopo viene consumato come terminatore.
I surrogati spaiati si comportano diversamente ovunque
Un surrogato spaiato viene conservato dalla serializzazione JSON, sostituito in silenzio da TextEncoder, rifiutato dal percent-encoding, scritto come punto interrogativo da Java e trasformato in errore da Python.

Buone pratiche

Normalizza prima di confrontare
Riporta entrambi i lati alla stessa forma di normalizzazione prima di confrontare o deduplicare, soprattutto per nomi e identificatori.
Per Python e Go scegli la forma larga
Una coppia surrogata è valida in JSON ma si rompe in entrambi i linguaggi. Usa l'escape a otto cifre quando la destinazione è codice sorgente Python o Go.
Controlla i caratteri invisibili subito
Valida l'input incollato al confine del sistema, invece di rincorrere molto più tardi un confronto che non torna.
Tieni da parte l'originale
La decodifica non è sempre reversibile senza perdite una volta che compaiono i caratteri di sostituzione. Conserva il valore grezzo finché non sei sicuro.

Domande frequenti

Cosa significa \u4e2d\u6587 e come lo rileggo?
Ogni \uXXXX è un'unità di codice UTF-16 scritta in esadecimale. \u4e2d è U+4E2D e \u6587 è U+6587: insieme formano una parola cinese. Incolla tutta la stringa qui sopra e torna il testo leggibile, mentre il JSON o il testo di log intorno resta intatto.
Le barre rovesciate sono sparite e mi resta solo u4e2d: si può decodificare lo stesso?
Sì. Terminali e pipeline di log si mangiano spesso le barre rovesciate. La forma nuda u4e2du6587 viene riconosciuta e decodificata, mentre le parole normali che contengono una u restano intatte.
Perché una sola emoji diventa due escape \u?
I caratteri sopra U+FFFF non stanno in una singola unità di codice UTF-16, quindi JavaScript, Java e JSON li scrivono come coppia surrogata. Una faccina sorridente è 1 code point, 2 unità UTF-16 e 4 byte UTF-8. La tabella dei caratteri mostra tutti e tre i conteggi.
Come faccio il percorso inverso, da testo a escape?
Scrivi o incolla il testo normale e leggi la tabella sotto il risultato. Tutte le scritture vengono prodotte in una volta sola, così copi esattamente la forma che il tuo linguaggio si aspetta invece di convertire due volte.
Due stringhe sembrano identiche ma il codice dice che sono diverse. Perché?
Con ogni probabilità sono normalizzate in modo diverso. Una lettera accentata può essere un solo code point oppure la lettera base più un segno combinante: si disegnano uguali ma non sono uguali. Usa il pulsante NFC per riportarle alla stessa forma. Attenzione, la normalizzazione non è a costo zero nemmeno per cinese, giapponese e coreano: gli ideogrammi di compatibilità cambiano sotto NFC normale.
C'è qualcosa di invisibile nella mia stringa che rompe il codice. Come lo trovo?
Attiva Mostra caratteri invisibili. BOM, spazi a larghezza zero, spazi unificatori e selettori di variante ricevono un segnaposto visibile, e la tabella dei caratteri dà a ciascuno il suo nome e i suoi byte.
I miei dati vengono caricati da qualche parte?
No. La conversione avviene nel tuo browser, senza nessuna richiesta di rete. Niente viene caricato, registrato o memorizzato, quindi puoi incollare log di produzione senza pensieri.

Strumenti correlati

Vedi tutti gli strumenti →