MiServe DevTools

Tus pegatinas

Fija aquí tus herramientas. Se guardan en este navegador.

Codificador y decodificador de entidades HTML

Escapa texto para HTML con referencias de carácter con nombre o numéricas, y vuelve a convertir en caracteres referencias como &, é y é.

Funciona en tu navegador. Nada de lo que pegas se sube.

Acerca de esta herramienta

Qué es una entidad HTML

Una referencia de carácter HTML, que se suele llamar entidad, escribe un carácter usando solo ASCII simple. Tiene tres formas: un nombre, como en é; un punto de código decimal, como en é; y un punto de código hexadecimal, como en é. Las tres producen la misma é.

Hay cinco caracteres que importan más que el resto. & y < se escapan en el texto, porque pueden iniciar una referencia y una etiqueta, respectivamente. La comilla que delimita el valor de un atributo debe escaparse dentro de él. > se escapa por convención. Solo reservados codifica exactamente estos cinco: & < > " '.

Nombres, números y dónde funcionan

HTML 4 definía 252 nombres, y el estándar HTML actual define 2125. XML por sí solo predefine únicamente cinco: amp, lt, gt, quot y apos. Cualquier otro nombre funciona en un documento XML, como un archivo SVG o un feed RSS, solo si lo declara una DTD. Las referencias numéricas funcionan igual en HTML que en XML, así que elige la salida numérica cuando el texto pueda acabar en XML.

Esta herramienta escribe el apóstrofo como referencia numérica, &#39; o &#x27;, porque &apos; no forma parte de HTML 4. Una página servida como UTF-8 no necesita codificar en absoluto sus letras acentuadas ni sus emojis; Todos los no ASCII es para los casos en que el texto tiene que pasar intacto por un canal que solo transporta ASCII.

Hay un grupo de caracteres que no se puede escribir como referencia. HTML interpreta una referencia numérica de 128 a 159 como el carácter de Windows-1252 que ocupa esa posición, cuando existe, así que &#133; son unos puntos suspensivos y no el carácter de control U+0085. El codificador deja esos caracteres de control como están y te avisa cuando lo hace.

Cómo funciona aquí la decodificación

El decodificador aplica las reglas que el estándar HTML establece para el texto. Las referencias numéricas se aceptan con o sin el punto y coma final. Un número de 128 a 159 se lee como el carácter de Windows-1252 que ocupa esa posición, cuando esa codificación tiene uno (así, &#150; es una semirraya, –), y el cero, los sustitutos (surrogates) y los números por encima de U+10FFFF se convierten en U+FFFD y se muestran en una lista debajo del resultado. Los nombres necesitan su punto y coma, excepto los 106 nombres antiguos, como &copy y &nbsp, que los navegadores siguen aceptando sin él.

Los nombres distinguen entre mayúsculas y minúsculas y se buscan en una copia integrada de la tabla del estándar. Lo que parece una referencia pero no coincide con ningún nombre se deja como está y se muestra en una lista debajo del resultado. Dentro del valor de un atributo, el estándar deja sin decodificar algunas referencias sin punto y coma; esta herramienta siempre aplica las reglas para el texto. Tu entrada nunca se pasa al analizador HTML del navegador, así que nada de lo que pegas se renderiza ni se ejecuta.

Preguntas

¿Qué caracteres tengo que escapar en HTML?

En el texto, el signo menor que, y el ampersand siempre que pueda leerse como el inicio de una referencia de carácter. Escapar todos los ampersands es la forma sencilla de cumplir esa regla. Dentro del valor de un atributo, escapa también la comilla que delimita el valor. Escapar el signo mayor que no es obligatorio, pero es habitual e inofensivo.

¿Basta con escapar las entidades HTML para evitar el cross-site scripting?

Solo cuando el valor se coloca en texto HTML o en un atributo entre comillas. Un valor colocado dentro de un bloque de script, una URL, un estilo o un manejador de eventos necesita en su lugar las reglas de escape de ese contexto.

¿Qué diferencia hay entre un espacio de no separación (nbsp) y un espacio normal?

El espacio de no separación es el carácter U+00A0, y nbsp es su nombre como referencia de carácter. Un navegador no corta la línea en él ni junta varios en uno solo, como hace con una serie de espacios normales.

¿Por qué no se decodificó una referencia?

Un nombre que el estándar HTML no define no es una referencia de carácter, así que el navegador lo muestra tal como está escrito, y esta herramienta lo deja sin cambios y lo incluye en la lista. Revisa la ortografía y las mayúsculas, porque los nombres las distinguen: Eacute y eacute son caracteres distintos. Revisa también el punto y coma, del que solo pueden prescindir 106 nombres antiguos.

Más herramientas de Codificación