O que esta ferramenta faz
Ela lê o conteúdo de um literal de string Java e devolve o texto que ele representa. As formas nomeadas \n, \r, \t, \b, \f e \0 voltam a ser seus caracteres, \uXXXX é decodificado, e um par substituto escrito como \ud83d\ude00 é recomposto no único caractere que codifica — é assim que qualquer caractere acima de U+FFFF precisa ser escrito num literal Java.
Como Java escapa todo caractere não ASCII na saída, esta é a etapa que torna um literal escapado legível de novo: um muro de é e 中 volta a ser o texto acentuado e CJK que representa.
Onde Java difere
O conjunto de Java é menor que o de JavaScript. Não há \v nem \a: ambos voltam como a letra nua, v e a, em vez de um caractere de controle que a linguagem nunca teve. Os escapes octais, por outro lado, são decodificados por inteiro: \0 dá NUL, \101 dá A, e a forma de três dígitos só é aceita quando o primeiro dígito vai de 0 a 3, que é o que a própria gramática do Java diz.
No sentido inverso, a ferramenta é mais permissiva que o compilador. \u{1F600} e \xNN são aceitos porque aparecem o tempo todo em texto copiado entre linguagens, mas nenhum dos dois é Java válido: o javac rejeita ambos.
O que ela não faz
Ela decodifica o conteúdo de um literal, não uma expressão Java: nada é concatenado, e blocos de texto (""") têm regras próprias de espaço incidental que esta ferramenta não aplica.
Privado por padrão
Tudo é executado localmente no seu navegador com JavaScript. Os seus dados nunca são enviados para um servidor, o que torna a ferramenta segura para conteúdo sensível e funciona offline.