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

Unescape Java — leggi un literal dal sorgente

Decodifica un literal Java in testo, con \uXXXX e coppie surrogate: una riga presa da un file .java torna leggibile così com’è.

Istantaneo Privato Zero cookie

Input Java Escaped

Output Text

Cosa fa questo strumento

Legge il contenuto di un literal di stringa Java e restituisce il testo che rappresenta. Le forme con nome \n, \r, \t, \b, \f e \0 tornano a essere i loro caratteri, \uXXXX viene decodificata e una coppia surrogata scritta per esteso come \ud83d\ude00 viene ricomposta nell’unico carattere che codifica: è così che va scritto qualsiasi carattere sopra U+FFFF in un literal Java.

Poiché Java esegue l’escape di ogni carattere non ASCII in uscita, questo è il passaggio che rende di nuovo leggibile un literal: un muro di é e 中 ridiventa il testo accentato e CJK che rappresenta.

Dove Java è diverso

L’insieme di Java è più piccolo di quello di JavaScript. Non esistono \v né \a: entrambi tornano come lettera nuda, v e a, invece che come un carattere di controllo che il linguaggio non ha mai avuto. Gli escape ottali, invece, vengono decodificati per intero: \0 dà NUL, \101 dà A, e la forma a tre cifre è accettata solo se la prima va da 0 a 3, che è quanto dice la grammatica di Java stessa.

Nell’altro verso lo strumento è più permissivo del compilatore. \u{1F600} e \xNN sono accettati perché compaiono di continuo nei testi copiati fra linguaggi, ma nessuno dei due è Java valido: javac li rifiuta.

Cosa non fa

Decodifica il contenuto di un literal, non un’espressione Java: nulla viene concatenato, e i blocchi di testo (""") hanno regole proprie sugli spazi incidentali che questo strumento non applica.

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é `\v` non dà una tabulazione verticale?
Perché Java non ha `\v`. Decodificarlo significherebbe risolvere qualcosa che `javac` rifiuta del tutto: lo strumento restituisce la lettera `v` nuda anziché inventare un carattere di controllo.
`\u{...}` e `\xNN` sono Java valido?
No. Qui sono accettati perché circolano nei testi copiati fra linguaggi, ma `javac` li rifiuta entrambi. Solo `\uXXXX` è Java vero.
E gli escape ottali?
Vengono decodificati, esattamente come fa Java. `\101` dà `A` e `\012` un avanzamento di riga. Tre cifre solo se la prima va da 0 a 3 — la regola di Java stessa — quindi `\400` è `\40` seguito dal testo `0`.

Convertitori correlati