# Escapar y desescapar cadenas

Escapa texto para una cadena JSON o JavaScript, una cadena SQL, un campo CSV, una expresión regular o una palabra de shell, o deshaz el escape.

https://codeknife.dev/es/escapar-desescapar/

## Qué hace

Escapa texto para que quepa en una cadena JSON o JavaScript, una cadena SQL, un campo CSV, una expresión regular o una palabra de shell, y deshace el escape. Cada formato escapa exactamente los caracteres que necesita y ningún otro.

## Cómo se usa

1. Escribe o pega texto, o suelta un archivo de texto.
2. Elige adónde irá el texto (**Cadena JSON**, **Cadena JavaScript**, **Cadena SQL**, **Campo CSV**, **Expresión regular** o **Palabra de shell**) y si **Escapar** o **Desescapar**.
3. Copia o descarga el resultado, o usa **Usar la salida como entrada** para convertirlo en la siguiente entrada.

## Ejemplos

Escapar `He said "it's fine"` y un salto de línea:

JSON da `He said \"it's fine\"\n`, SQL da `He said "it''s fine"` y el shell da `'He said "it'\''s fine"'`.

## Conviene saber

- JSON y JavaScript escapan la barra invertida, la comilla que envuelve la cadena, los saltos de línea y los caracteres de control. Desescapar lee `\n`, `\t`, `\uXXXX` y similares; JavaScript también lee `\xHH` y `\u{…}`.
- SQL duplica la comilla simple. Es correcto para un literal escrito a mano; para código, usa parámetros enlazados.
- Un campo CSV solo va entre comillas si contiene una coma, una comilla o un salto de línea, y las comillas de dentro se duplican.
- Una palabra de shell va entre comillas simples, y una comilla simple dentro se escribe `'\''`, para que nada se expanda.

## ¿Por qué cada formato escapa de forma distinta?

Cada sintaxis tiene sus caracteres especiales. Una cadena JSON necesita comillas, barras invertidas y caracteres de control escapados. Una cadena SQL solo necesita la comilla simple duplicada. Un campo CSV se envuelve en comillas si contiene coma, comilla o salto de línea. Una expresión regular escapa sus operadores, y una palabra de shell se envuelve en comillas simples para que nada se expanda.

## Preguntas frecuentes

### ¿Escapar basta para evitar la inyección SQL?

No. Duplicar comillas es lo que muestra esta herramienta y sirve para un literal en una consulta escrita a mano, pero no es una defensa para código. Pasa los valores como parámetros enlazados, para que nunca formen parte del texto SQL.

### ¿Qué diferencia hay entre una cadena JSON y una de JavaScript?

JSON permite pocos escapes y siempre usa comillas dobles. JavaScript permite también comillas simples, \x41, y escapes en ambos estilos de comillas. Desescapar como JSON rechaza por tanto secuencias que JavaScript aceptaría.

### ¿Esta herramienta envía mi texto a algún sitio?

No. Todo ocurre en tu navegador. Lo que escribes nunca se envía a nuestros servidores.