Saltar al contenido

Escapador de cadenas

String Escaper

Escapa y desescapa cadenas para JSON, JavaScript, SQL, shell, CSV y expresiones regulares.

Escapa un fragmento de texto para que pueda pegarse dentro de un literal de cadena —en JSON, JavaScript, Python, Java, C#, SQL, un comando de shell, un campo CSV o una expresión regular— y lo desescapa de vuelta. Cada destino tiene sus propias reglas, y las diferencias entre ellas son exactamente donde viven los bugs de inyección.

🔒 Se ejecuta por completo en tu navegadorescapestringjsonshell
Reglas
Dirección

RFC 8259: `\" \\ \/ \b \f \n \r \t` y `\uXXXX` para el resto. Sin `\'`, sin `\x`, sin `\0`.

Texto

Escapado

Entrada

0 caracteres

Salida

0 caracteres

Cómo se usa

  1. Elige el lenguaje de destino

    La nota bajo el selector dice qué escapa realmente ese destino. JSON es más estricto que JavaScript; un template literal tiene dos caracteres extra de los que preocuparse; la shell con comillas simples es un problema distinto de la shell con comillas dobles.

  2. Pega el texto en bruto

    Los saltos de línea, las comillas y lo que no es ASCII se manejan todos. Lo que sale es el *interior* del literal: las comillas de alrededor las pones tú.

  3. Comprueba «se revierte limpiamente»

    La estadística bajo la salida desescapa el resultado y lo compara con lo que escribiste. Si dice que no, el escapado es con pérdida para este destino y la cadena que pegues no es la cadena que tenías.

Preguntas frecuentes

¿Escapar hace seguro mi SQL?

No. Escapar un literal no es lo mismo que una consulta parametrizada, y esta herramienta no puede saber el modo de comillas de tu base de datos, su juego de caracteres, ni si el valor acaba en algún sitio donde una comilla no es el delimitador. Usa parámetros vinculados; usa esto para leer una consulta, no para construir una para producción.

¿Por qué el modo SQL no usa barras invertidas?

Porque el SQL estándar no tiene escape con barra invertida: una comilla se escribe dos veces. El escape con barra invertida es una extensión de MySQL, y el código que asume que está presente es de donde ha salido buena parte de las inyecciones. Si necesitas el comportamiento de MySQL, lo necesitas a propósito.

¿Qué hace el destino `\uXXXX`?

Convierte cada carácter no ASCII en un escape `\uXXXX`, pares sustitutos incluidos. Su dirección más útil es la inversa: un archivo de properties o una línea de log que una tubería solo ASCII estropeó recupera sus tildes y sus eñes cuando lo desescapas.

¿La shell con comillas simples es realmente segura para cualquier cadena?

Para la cadena en sí, sí: nada dentro de comillas simples POSIX tiene significado, y una comilla se escribe como `'\''`. Contra lo que no protege es contra el programa al que llamas interpretando el argumento, o contra una shell que no sea POSIX. Es una regla de entrecomillado, no un sandbox.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.