Cómo escapar y desescapar cadenas HTML/URL/JS
Deja de romper páginas y APIs con comillas sueltas, ampersands y Unicode. Convierte texto hacia y desde formas escapadas seguras para HTML, URL, JavaScript, JSON, CSV y XML.

Más utilidades que combinan bien con esta guía:
Por qué importa
Imagina pegar una reseña de cliente en un JSON que alimenta un banner web. La reseña tiene una " suelta. El bundler compila, el banner se despliega y la portada muestra Uncaught SyntaxError. El arreglo es trivial — escapar la comilla — pero saber qué escape (¿entidad HTML? ¿JSON \"? ¿URL %22?) es la habilidad real. Esta herramienta ofrece todos en un sitio para que dejes de adivinar y copiar regex de Stack Overflow.
Tres escenarios reales
Convierte <script> a <script> para que el navegador muestre el texto literal en lugar de ejecutarlo.
Sin XSS ni rotura de render
Codifica URL name=O'Hara como name=O%27Hara antes de añadirla a la URL.
Llamada API que funciona
Envuelve campos entre comillas y escapa comillas internas duplicándolas — el perfil CSV hace ambos automáticamente.
Importación limpia
Guía paso a paso
Abre la herramienta de escape de texto.
Pega la entrada cruda
La herramienta conserva el original en el panel izquierdo y muestra el resultado escapado a la derecha.
Elige el formato destino
HTML, URL, JavaScript / JSON, CSV o XML. Cada uno tiene reglas distintas. Elige el que coincida con el destino de la cadena, no el origen.
Activa Escapar vs Desescapar
Cambia a Desescapar cuando ya tienes una cadena escapada y quieres el original — p. ej. depurando una línea de log codificada en JSON.
Copia la cadena segura
Coloca el resultado en tu código, configuración o llamada API.
Crudo
<a href="x">Hi & welcome</a>Escapado HTML
<a href="x">Hi & welcome</a>Crudo
She said "hi" on Tuesday — line break
follows.Escapado JS
She said \"hi\"\ton Tuesday \u2014 line break\nfollows.
Consejos útiles
- Escapa solo cuando haga falta. Si el destino es
textContentde un nodo DOM, el navegador ya escapa por ti. El doble escape es el error más común. - Para query strings URL, codifica cada valor por separado. Codificar la URL entera escapa los
=y&legítimos. - JSON ≠ JavaScript. Una cadena JS puede usar comillas simples; JSON no. Elige el perfil JS/JSON que coincida con tu formato destino.
- Prueba ida y vuelta: escapa, desescapa y confirma que recuperas el original. Si no, tu entrada tenía caracteres de control que requieren limpieza más agresiva primero.
Trampas comunes
Error frecuente
Salida doble escapada: "&" en lugar de "&"
Escapaste texto ya escapado. Ejecuta Desescapar primero para confirmar que la entrada es la forma cruda, luego escapa una vez para el destino.
Error frecuente
Caracteres Unicode se convierten en `\u00XX` literal en tu archivo
Algunas herramientas descendentes (PHP antiguo, ciertos controladores SQL) no entienden escapes \uXXXX. Usa el perfil URL (codifica bytes UTF-8 con %) o guarda la cadena UTF-8 cruda y escapa solo al mostrar.
Error frecuente
CSV escapa un tab dentro de un campo entre comillas
La regla CSV solo duplica comillas internas; tabs y saltos pasan sin cambio. Si tu importador cuenta columnas por tabs/saltos, cambia el separador de campo (p. ej. a ;) o entrecomilla cada campo.
Cuándo no es la herramienta adecuada
- Sanear HTML para renderizado con etiquetas permitidas (p. ej. comentarios de blog) necesita un sanitizador HTML completo como DOMPurify, no un escape global.
- Binding de parámetros SQL debe usar consultas parametrizadas del driver, no escape a nivel de cadena.
- Escape de argumentos shell depende del shell (
bashvscmd.exe). Usashlexde tu lenguaje o equivalente.
Preguntas frecuentes
¿Diferencia entre encodeURI y encodeURIComponent?
encodeURI conserva caracteres reservados de URL (:, /, ?). encodeURIComponent (por defecto en el perfil URL aquí) los codifica, correcto al escapar un solo valor, no una URL completa.
¿Preserva emoji?
Sí. Cada perfil codifica la secuencia UTF-8 multibyte de forma adecuada (%F0%9F%98%80 para URL, \uD83D\uDE00 como pares sustitutos en JS).
¿Se envía mi texto a algún sitio?
No. El escape corre localmente; el resultado no sale de tu navegador.
Próximos pasos
- Tras escapar, valida la salida comparándola con el original.
- Formatea cualquier JSON incrustado con el Formateador de texto.
- Si codificas datos binarios (no texto), usa el códec Base64/Hex.