100 % local — seus dados nunca saem do seu navegador

Desescapar Java — leia um literal do código

Decodifique um literal Java em texto, com \uXXXX e pares substitutos: uma linha tirada de um arquivo .java volta a ser legível como está.

Instantâneo Privado Zero cookies

Entrada Java Escaped

Saída Text

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.

Perguntas frequentes

Por que `\v` não dá uma tabulação vertical?
Porque Java não tem `\v`. Decodificá-lo seria resolver algo que o `javac` rejeita de saída, então a ferramenta devolve a letra `v` nua em vez de inventar um caractere de controle.
`\u{...}` e `\xNN` são Java válido?
Não. São aceitos aqui porque aparecem em texto copiado entre linguagens, mas o `javac` rejeita os dois. Só `\uXXXX` é Java de verdade.
E os escapes octais?
São decodificados, exatamente como o Java faz. `\101` dá `A` e `\012` uma quebra de linha. Três dígitos só quando o primeiro vai de 0 a 3 — a regra do próprio Java —, então `\400` é `\40` seguido do texto `0`.

Conversores relacionados