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.