100 % local: tus datos nunca salen de tu navegador

Desescapar C# — lee un literal de tu código

Decodifica un literal C# a texto: los escapes con nombre que C# añade sobre Java, más \uXXXX, \u{...} y \xNN, todos devueltos como caracteres.

Instantáneo Privado Cero cookies

Entrada .NET Escaped

Salida Text

Qué hace esta herramienta

Lee el contenido de un literal de cadena C# y devuelve el texto que representa. Decodifica las secuencias que C# reconoce —\n, \r, \t, \b, \f, \v, \0 y \a— junto con \uXXXX, la forma de punto de código \u{1F600} y la hexadecimal \xNN. Un par suplente escrito como \ud83d\ude00 se recompone en el único carácter que codifica.

Cualquier otra cosa tras una barra invertida sale desnuda: \q da q, \\ da una sola barra.

En qué se diferencia C#

\a y \v son las dos secuencias que C# tiene y Java no, lo que las convierte en una señal fiable de que un literal salió de C# y no de Java. Aquí se decodifican ambas: \a da el carácter de campana U+0007 y \v la tabulación vertical U+000B. La diferencia funciona también al revés: C# no tiene escape octal alguno, mientras que Java y JavaScript sí. \101 es A en esos dos y aquí sale como los tres caracteres 101, porque en C# \0 es una secuencia con nombre y el 101 que sigue es solo texto.

Qué no hace

La forma de ocho dígitos \U0001F600 no se reconoce y sale como el texto U0001F600; usa \u{1F600} o el par suplente. \e sale igualmente como la letra e.

\u{1F600} tampoco es sintaxis de C#. C# tiene \uXXXX y la forma de ocho dígitos \UXXXXXXXX, y ninguna forma con llaves; aquí se acepta por comodidad, igual que en la herramienta de Java, pero csc la rechazaría. En este único carácter la herramienta y el lenguaje divergen en ambos sentidos: lee una forma que C# no tiene y no lee la que C# sí tiene.

\x se lee como exactamente dos dígitos hexadecimales, mientras que C# admite de uno a cuatro. \x4142 es un solo carácter en C# pero aquí sale como A42: una divergencia real, y justo el motivo por el que las guías de estilo de C# desaconsejan esa forma de longitud variable.

Por último, decodifica el contenido de un literal, no una expresión C#: nada se concatena, los huecos de interpolación quedan tal cual, y las cadenas verbatim no deberían pasar por aquí.

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.

Preguntas frecuentes

¿Qué decodifica C# que Java no?
Dos secuencias: `\a`, el carácter de campana U+0007, y `\v`, la tabulación vertical. Java no tiene ninguna de las dos, así que un literal que las use es propio de C#.
¿Por qué mi `\U0001F600` sigue igual?
La forma `\U` de ocho dígitos no se reconoce: sale como el texto `U0001F600`. Escribe el emoji como `\u{1F600}` o como el par suplente `\ud83d\ude00`. El par suplente es la mejor opción: también es C# válido, mientras que la forma con llaves no lo es.
¿Funciona con una cadena verbatim?
No, y es lo correcto. Una cadena verbatim (`@"..."`) no tiene secuencias de escape: una barra invertida ahí es solo una barra, y pasarla por aquí corrompería el valor.

Convertidores relacionados