Inicio › Herramientas para desarrolladores › Escapar / desescapar cadenas

Escapar / desescapar cadenas

Pega texto para convertirlo en un literal de cadena correctamente escapado para JavaScript, JSON, Java, C#, Python, C, SQL, expresiones regulares, CSV o la shell, o pega una cadena escapada para recuperar el texto original. Cada secuencia con barra invertida aparece con su significado, y los espacios en blanco ocultos se hacen visibles.

Última actualización:

Ejemplos:

Secuencias de escape

Texto original, con espacios en blanco visibles

· espacio → tabulación ↵ salto de línea ␍ retorno de carro ⍽ espacio de no separación

Publicidad
Publicidad

Cómo usar Escapar / desescapar cadenas

  1. Elige Escapar o Desescapar en la parte superior.
  2. Elige el destino: JavaScript, JSON, Java, C#, Python, C/C++, SQL, regex, CSV o shell, y ajusta sus opciones, como el tipo de comillas o el dialecto.
  3. Escribe o pega el texto o la cadena escapada. El resultado se actualiza al instante.
  4. Revisa la lista de secuencias de escape y la vista previa de espacios en blanco para comprobar exactamente qué contiene la cadena.
  5. Copia o descarga el resultado, o pulsa Intercambiar para convertirlo en sentido contrario.

Secuencias de escape por lenguaje

La mayoría de los lenguajes comparten los escapes con barra invertida de estilo C, pero los detalles varían. ✓ significa que el escape es válido en el literal de cadena normal de ese lenguaje.

EscaparSignificadoJSJSONJavaC#PythonC/C++
\n \r \tsalto de línea, retorno de carro, tabulación✓✓✓✓✓✓
\b \fretroceso, salto de página✓✓✓✓✓✓
\vtabulación vertical✓--✓✓✓
\acampana---✓✓✓
\0carácter nulo✓-✓ (octal)✓✓ (octal)✓ (octal)
\xHHcarácter por código hexadecimal✓ (2 dígitos)--✓ (1-4 dígitos)✓ (2 dígitos)✓ (cualquier longitud)
\uXXXXunidad de código UTF-16✓✓✓✓✓✓ (C11/C++11)
\u{1F600}cualquier punto de código✓ (ES2015)-----
\U0001F600cualquier punto de código (8 dígitos)---✓✓✓
\/barra✓ (identidad)✓----

Reglas de entrecomillado fuera de los lenguajes de estilo C

DestinoReglaEjemplo: it's "ok"
SQL (estándar)Duplica cada comilla simple dentro de '…''it''s "ok"'
MySQL'' o escapes con barra invertida \' \" \\ \n \0 \Z'it\'s \"ok\"'
CSV (RFC 4180)Pon entre comillas los campos con comas, comillas o saltos de línea; duplica las comillas internas"it's ""ok"""
Shell, comillas simplesTodo es literal; una comilla se escribe '\'''it'\''s "ok"'
Shell, comillas doblesEscapa \ " $ y el acento grave con una barra invertida"it's \"ok\""
C# textualSolo se duplican las comillas dobles@"it's ""ok"""
RegexBarra invertida antes de . * + ? ^ $ { } ( ) | [ ] \ /it's "ok" (nada especial)

Consejos

  • Escapar no protege por sí solo contra la inyección. Para SQL usa sentencias preparadas; para comandos de shell pasa los argumentos como un array (por ejemplo subprocess.run([...])) en lugar de construir una única cadena de comando.
  • Las fórmulas en archivos CSV (celdas que empiezan por =, +, - o @) pueden ejecutarse al abrirlas en una hoja de cálculo. La opción "Neutralizar fórmulas" les antepone un apóstrofo, como recomienda OWASP.
  • Usa el panel de espacios en blanco visibles para encontrar problemas invisibles, como espacios finales, finales de línea CRLF de Windows (␍↵), espacios de no separación y caracteres de ancho cero.

Preguntas frecuentes

¿Qué significa escapar una cadena?

Escapar reescribe los caracteres que tienen un significado especial dentro de un literal de cadena para que se lean como texto normal. En la mayoría de los lenguajes de estilo C, una barra invertida inicia un escape: \" es una comilla doble que no cierra la cadena, \n es un salto de línea y \\ es una sola barra invertida. SQL, en cambio, duplica la comilla ('' dentro de '...'), y CSV duplica las comillas dobles dentro de un campo entre comillas.

¿Cómo escapo una comilla simple en SQL?

SQL estándar, PostgreSQL, SQL Server, SQLite y Oracle la duplican: 'O''Brien'. MySQL y MariaDB también aceptan escapes con barra invertida como \' salvo que NO_BACKSLASH_ESCAPES esté activado. Para consultas creadas a partir de datos del usuario, usa consultas parametrizadas (sentencias preparadas) en lugar de escapar a mano, porque además protegen contra la inyección SQL.

¿Qué diferencia hay entre escapar en JavaScript y en JSON?

JSON es más estricto. Solo permite \" \\ \/ \b \f \n \r \t y \uXXXX, exige comillas dobles y prohíbe los caracteres de control sin escapar. JavaScript también acepta comillas simples y acentos graves, \v, \0, \xHH y \u{1F600}, y trata un escape desconocido como \q simplemente como q. Esta herramienta señala los escapes que no son válidos en JSON.

¿Cómo escapo caracteres especiales en una expresión regular?

Pon una barra invertida antes de cada uno de . * + ? ^ $ { } ( ) | [ ] y \, y también antes de / si el patrón se escribe como literal /…/ en JavaScript. El destino Regex hace exactamente eso, para que el patrón coincida con el texto de forma literal. Los guiones no se escapan porque \- fuera de una clase de caracteres es un error en el modo Unicode de JavaScript.

¿Cómo escapo una cadena para bash u otra shell?

Lo más seguro son las comillas simples: todo lo que hay dentro es literal, y una comilla simple se escribe como '\'' (cerrar la comilla, una comilla escapada y abrir una nueva). Las comillas dobles siguen expandiendo $, ` y \, y el entrecomillado ANSI-C $'…' permite escribir \n y \t. La opción Inteligente deja sin comillas las palabras simples y pone entre comillas simples todo lo demás.

¿Por qué Java no usa \u000A para un salto de línea en una cadena?

El compilador de Java sustituye los escapes \uXXXX antes de analizar el código, así que \u000A se convierte en un salto de línea real en medio del literal de cadena y el archivo ya no compila. Por eso esta herramienta escribe los caracteres de control en Java como \n, \t o escapes octales como \0 y \033, y usa \u solo para caracteres imprimibles.

¿Se envía mi texto a algún sitio?

No. El escapado y el desescapado se hacen con JavaScript en tu dispositivo. No se sube ni se guarda nada, así que es seguro para código, claves y datos privados.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Codificadores, hashes y criptografía →