¿Por qué son necesarias las entidades de caracteres HTML? ¿De qué sirven? No veo el punto.¿Por qué son necesarias las entidades de caracteres HTML?
Respuesta
Dos cosas principales.
- Le permiten usar caracteres que no están definidos en un juego de caracteres actual. Por ejemplo, legalmente puede usar ASCII como juego de caracteres y aún incluir caracteres Unicode arbitrarios a través de entidades.
- Le permiten citar caracteres que HTML le da un significado especial, como señaló Simon.
"1 < 2
" le permite poner "1 < 2
" en su página.
Respuesta larga:
Desde HTML utiliza '<
' para abrir las etiquetas, no se puede simplemente escribir '<
' si quieres que como texto. Por lo tanto, debe tener una forma de decir "Quiero el texto <
en mi página". Quien diseñó HTML (o, en realidad, SGML, predecesor de HTML) decidió utilizar '&
algo;
', por lo que también puede poner cosas como espacio sin interrupciones: '
' (espacios que no están contraídos o permiten un salto de línea) . Por supuesto, ahora necesita tener una forma de decir '&
', por lo que obtiene '&
' ...
+1: No olvide que
Pero puedo escribir simplemente "
Las entidades de caracteres se utilizan para representar caracteres que están reservados para escribir HTML for.ex. <,>, /, & etc, si se desea representar estos caracteres en su contenido que debe usar entidades de caracteres, esto ayudará a que el analizador distinguir entre el contenido y marcado
Se utilizan las entidades para ayudar a la el analizador distingue cuándo un personaje debe representarse como HTML, y lo que realmente desea mostrar al usuario, ya que HTML reservará un conjunto especial de caracteres para sí mismo.
Escribiendo esto literalmente en HTML
no me refiero a que de esa manera </sarcasmo >
hará que la etiqueta "</sarcasmo >" desaparezca,
p.ej
No quiero decir que de esa manera
como HTML no tiene una etiqueta definida como tal. En este caso, el uso de entidades permitirá que el texto se muestre correctamente.
p. Ej.
No, realmente!& lt;/sarcasmo & gt;
da
No, de verdad! </sarcasmo >
según lo deseado.
No son, aparte de &
, <
, >
, "
y probablemente
. Para todos los demás personajes, solo usa UTF-8.
Tenga en cuenta que '"' solo se necesita realmente en los atributos –
En SGML y XML no son solo para caracteres. Son un mecanismo de inclusión genérico, y su uso para caracteres especiales es solo uno de muchos casos.
<!ENTITY signature "<hr/><p>Regards, <i>&myname;</i></p>">
<!ENTITY myname "John Doe">
Este tipo de entidades no es útil para los sitios web, ya que sólo funcionan en el modo de XML, y no se puede usar el archivo DTD externa sin habilitar "validar" el modo de análisis en la configuración del navegador.
Las entidades se pueden ampliar recursivamente. Esto permite el uso de XML para el ataque de denegación de Serice llamado "Billion Laughs Attack".
Firefox utiliza entidades internamente (en XUL y tal) para la internacionalización y de la marca independiente mensajes (para hacer la vida más fácil para Flock y IceWeasel):
<!ENTITY hidemac.label "Hide &brandShortName;">
<!ENTITY hidewin.label "Hide - &brandShortName;">
En HTML sólo tiene <
, &
y "
para evitar ambigüedades entre el texto y el marcado.
Todas las otras entidades están básicamente obsoletas por las codificaciones Unicode y permanecen solo como una conveniencia (pero un buen editor de texto debe tener macros/fragmentos que puedan reemplazarlas).
En XHTML todas las entidades excepto los pocos básica son problemáticos, porque no funcionará con los analizadores XML independientes (por ejemplo
no funcionará).
Para analizar todas las entidades XHTML que necesita validando Analizador XML (la opción se suele llamar "resolución externa") que es más lenta y necesita la configuración del DTD Catalog. Si ignora o arruina su catálogo de DTD, estará participando en el DDoS of W3C servers.
Tenga en cuenta que esta respuesta confunde la terminología. La pregunta era sobre las entidades * character *, no las entidades * name *, * external * o * parameter *. – kjhughes
- 1. ¿Por qué son necesarias las declaraciones anticipadas?
- 2. Por qué son necesarias las propiedades de automatización en WPF
- 3. Java: ¿Por qué son necesarias las clases de contenedor?
- 4. Ciertas entidades de caracteres HTML son ENORMES en Firefox solamente
- 5. ¿Cuáles son las entidades de caracteres compatibles para comentarios XML?
- 6. ¿Son necesarias las interfaces en JavaScript?
- 7. ¿Debería seguir usando entidades html? ¿Por qué?
- 8. Java: ¿cómo deshacer las entidades de caracteres HTML en Java?
- 9. Entidades de caracteres HTML y conjunto de codificación de caracteres
- 10. ¿Cómo convertir caracteres especiales en entidades html?
- 11. Decodificación de todas las entidades HTML
- 12. Convertir entidades de caracteres HTML a texto normal usando javascript
- 13. ¿Qué clases son absolutamente necesarias para ejecutar una VM Java?
- 14. Cuándo se deben usar las entidades HTML
- 15. ¿Qué características de lenguaje son necesarias para las secuencias de comandos del juego?
- 16. ¿Qué caracteres no son seguros en las cadenas de consulta?
- 17. ¿Deberían todos los caracteres acentuados usar entidades html?
- 18. ¿Qué son las cookies firmadas y por qué son útiles?
- 19. ¿Son necesarias restricciones únicas en el DB?
- 20. Impedir que los rieles conviertan caracteres especiales en entidades HTML
- 21. Conversión de entidades HTML con nombre a entidades HTML numéricas
- 22. ¿Cómo puedo decodificar entidades HTML?
- 23. ¿Por qué todas las entidades de Linq odian?
- 24. ¿Qué caracteres son válidos en las teclas hash?
- 25. ¿Por qué las etiquetas son todas minúsculas?
- 26. ¿Por qué las interfaces no son [Serializable]?
- 27. ¿Por qué son repetibles las iteraciones?
- 28. ¿Cuáles son las entidades HTML para arriba y abajo de triángulos?
- 29. XML sin tener que reemplazar las entidades HTML en PHP
- 30. ¿Debo usar entidades HTML para caracteres especiales si estoy usando el juego de caracteres UTF-8?
3. Le permiten usar caracteres que no puede ingresar directamente por alguna razón. Como un ejemplo simple, probablemente no pueda escribir la palabra "gräßlich" en su teclado, pero en su lugar no hay problema en escribir "gr ä ß lich". (Por supuesto, siempre puedes simplemente copiar y pegar las letras "ä" y "ß" de otro lugar, pero eso no está en ningún lado como sea conveniente.) –
RegDwight, lo dejé a sabiendas. Es mejor aprender a escribirlo con su teclado/sistema operativo, o copiarlo si lo necesita solo esta vez.Las páginas/innecesariamente/llenas de entidades son molestamente difíciles de leer. –