Codificador HTML

Escapa &, <, >, comillas y opcionalmente texto no ASCII a entidades HTML en tu navegador, resultado instantáneo, nada sale nunca de tu dispositivo.

🌐 English

🔒 Privado por diseño: tu texto se procesa localmente en tu navegador; nada se sube nunca a ningún servidor.

Cómo codificar texto en HTML

  1. Pega el texto, fragmento de código o contenido enviado por un usuario que quieras escapar en la caja de arriba.
  2. Elige un Alcance del escapado: “Solo caracteres inseguros en HTML” (el valor por defecto, solo & < > " ') o “También todo lo no ASCII” si además quieres que las letras acentuadas, símbolos y emoji se conviertan en entidades numéricas.
  3. Haz clic en Codificar HTML, el resultado aparece al instante, justo debajo.
  4. Haz clic en Copiar al portapapeles para llevarte el texto escapado, y pégalo directamente en tu código fuente HTML, plantilla o campo del CMS.

Sin archivo que elegir, sin subida, todo es una operación de un clic dentro del navegador.

¿Por qué codificar texto en HTML?

HTML le da un significado especial a un puñado de caracteres. Un < puede abrir lo que el analizador lee como una nueva etiqueta, un & puede iniciar lo que parece una referencia de entidad, y las comillas sin escapar pueden cerrar prematuramente el valor de un atributo. Si pegas texto en bruto que contiene cualquiera de estos en un documento HTML, una muestra de código en una entrada de blog, el comentario de un usuario, la descripción de un producto extraída de una hoja de cálculo, el navegador puede estropear silenciosamente el diseño, truncar el texto visible, o en el peor de los casos dejar que texto suministrado por un atacante se analice como marcado o script real (una entrada clásica de cross-site scripting). Convertir <, >, &, " y ' en sus equivalentes de entidad (&lt;, &gt;, &amp;, &quot;, &#39;) los vuelve texto inerte y literal que siempre se renderiza exactamente como se escribió, sin importar dónde acabe en la página.

Esta es una tarea habitual para cualquiera que escriba documentación que incluya muestras de código, construya un generador de sitios estáticos o una plantilla de CMS, sanee texto enviado por usuarios antes de mostrarlo, o depure por qué un fragmento como <script> o “Tom & Jerry” se está renderizando de forma extraña dentro de un <div>. La mayoría de los lenguajes tienen una función de escapado incorporada para esto (htmlspecialchars de PHP, html.escape de Python, el auto-escapado de un motor de plantillas), pero a veces simplemente tienes un fragmento de texto a mano y quieres las entidades ahora mismo, sin abrir un editor ni escribir un script desechable.

El alcance opcional “También todo lo no ASCII” va más allá y codifica numéricamente todo lo que esté fuera del rango ASCII básico, é se convierte en &#233;, un emoji se convierte en su propio punto de código con prefijo &#. Los documentos HTML modernos son UTF-8 por defecto y renderizan texto acentuado y emoji de forma nativa, así que la mayoría de la gente nunca necesita esto. Existe para el caso más específico de preparar contenido para un sistema antiguo, un analizador XML/XHTML estricto, o un destino cuya codificación de caracteres no puedes confiar del todo.

Tu texto nunca sale de tu dispositivo

El escapado HTML no necesita un servidor, es una operación pura de sustitución de caracteres que se ejecuta al instante en JavaScript. Algunas herramientas online de “codificador HTML” igualmente envían tu texto a través de un backend, lo cual es un riesgo innecesario si lo que pegas es documentación no publicada, código interno, o datos de usuarios que preferirías no entregar a los registros de acceso del servidor de un tercero.

Esta herramienta ejecuta la sustitución en el instante en que haces clic en el botón, usando solo el propio motor de JavaScript de tu navegador, nada se transmite, registra ni almacena, y funciona exactamente igual sin conexión una vez que la página ha cargado.

Usos habituales

Cómo funciona, en imágenes

Captura de pantalla de la herramienta Codificador HTML con la entrada de ejemplo «<p class="note">Everything runs in your browser …», Escape scope en HTML-unsafe characters only (& < > and quotes, default)
Codificador HTML en pleno proceso: la entrada de ejemplo «<p class="note">Everything runs in your browser …», Escape scope en HTML-unsafe characters only (& < > and quotes, default).
Captura de pantalla del resultado de Codificador HTML mostrando la salida generada «&lt;p class=&quot;note&quot;&gt;Everything runs …»
El resultado final: la salida generada «&lt;p class=&quot;note&quot;&gt;Everything runs …». El enlace de descarga es una URL blob local: el archivo nunca sale de tu dispositivo.

Preguntas frecuentes

¿Se envía mi texto a un servidor para codificarlo?

No. El escapado HTML es una operación pura de mapeo de caracteres en JavaScript, y se ejecuta enteramente dentro de tu pestaña del navegador en cuanto haces clic en el botón. Lo que pegues (un fragmento de código, un comentario de usuario, un trozo de texto extraído) nunca sale de tu dispositivo.

¿Qué caracteres se escapan por defecto?

Los 5 caracteres que siempre son ambiguos o inseguros dentro de texto y atributos HTML, & se convierte en &amp;, < se convierte en &lt;, > se convierte en &gt;, " se convierte en &quot;, y ' se convierte en &#39;. El ampersand siempre se trata primero (o, como lo hace esta herramienta, en el mismo pase carácter a carácter que todo lo demás), así que nunca acabas con un doble escapado roto como &amp;lt; apareciendo en lugar de un simple &lt;.

¿Qué hace la opción "También todo lo no ASCII"?

Convierte adicionalmente cada carácter con un punto de código por encima de 127 (letras acentuadas, comillas curvas, escrituras no latinas, emoji) en una entidad HTML numérica como &#233; para la letra é. El HTML moderno es UTF-8 por defecto y no requiere esto, pero es útil para máxima compatibilidad con analizadores antiguos o estrictos, o cuando sabes que el destino usa una codificación de caracteres distinta.

¿Por qué necesito escapar estos caracteres?

Un < o & sin escapar dentro de texto HTML es ambiguo para el analizador (< puede iniciar lo que parece una nueva etiqueta, y & puede iniciar lo que parece una referencia de entidad) así que los navegadores, motores de plantillas y analizadores XML/HTML pueden renderizar un marcado roto o, peor aún, dejar que texto enviado por un usuario se interprete como marcado o script ejecutable (un vector clásico de XSS almacenado). Escapar convierte esos caracteres en texto literal e inerte que siempre se muestra exactamente como se escribió.

¿Esto estropeará un emoji o un carácter acentuado?

No. El codificador itera por punto de código Unicode completo en lugar de por unidad de código UTF-16 en bruto, así que un carácter de varias partes como un emoji se trata como una sola unidad y nunca se divide en dos entidades rotas, verificado específicamente para emoji de par sustituto antes de publicarse.

¿Puedo convertir entidades HTML de vuelta a texto normal aquí?

No en esta página, esta herramienta solo codifica. Usa la herramienta complementaria Decodificador HTML para la operación inversa, que reconoce tanto entidades con nombre (como `&amp;`) como entidades numéricas (como `&#39;` o `&#127881;`) y las convierte de vuelta a texto plano.

Herramientas relacionadas