Qué hace esta herramienta
Lee el contenido de un literal de cadena Java y devuelve el texto que representa. Las formas con nombre \n, \r, \t, \b, \f y \0 vuelven a ser sus caracteres, \uXXXX se decodifica, y un par suplente escrito como \ud83d\ude00 se recompone en el único carácter que codifica: así es como hay que escribir cualquier carácter por encima de U+FFFF en un literal Java.
Como Java escapa todo carácter no ASCII al salir, este es el paso que vuelve legible un literal escapado: un muro de é y 中 recupera el texto acentuado y CJK que representa.
En qué se diferencia Java
El conjunto de Java es más pequeño que el de JavaScript. No hay \v ni \a: ambos salen como la letra desnuda, v y a, en lugar de un carácter de control que el lenguaje nunca tuvo. Los escapes octales, en cambio, se decodifican por completo: \0 da NUL, \101 da A, y la forma de tres dígitos solo se acepta si el primero va de 0 a 3, que es lo que dice la propia gramática de Java.
En sentido contrario, la herramienta es más permisiva que el compilador. \u{1F600} y \xNN se aceptan porque aparecen sin parar en texto copiado entre lenguajes, pero ninguno es Java válido: javac los rechaza.
Qué no hace
Decodifica el contenido de un literal, no una expresión Java: nada se concatena, y los bloques de texto (""") tienen sus propias reglas de espaciado incidental que esta herramienta no aplica.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.