Entiendo la razón por la que se crearon la mayoría de las Entidades de caracteres HTML, pero no entiendo el propósito detrás de la entidad HTML comercial. & contiene más bits que un símbolo &, ¡e incluso tiene el & dentro!

¿Por qué se decidió que los símbolos de unión deberían codificarse en el formato que requiera más datos, en lugar de simplemente usar el símbolo?

Comentarios

  • Es como tener una forma de incluir una cita dentro de otra cita. Las computadoras han tenido durante mucho tiempo este problema : el código puede ser datos en una situación diferente y los datos pueden ser código. qué hace que las computadoras sean diferentes de las máquinas ordinarias, y qué hace que el lenguaje humano sea diferente de los ruidos que hacen los animales. ¡Ahora adelante y auto-referencia!

Responder

Para evitar la ambigüedad. Suponga que desea escribir un sitio web sobre HTML. Escribe la línea: «Para escribir un < literal, debes escribir & lt ;.» Ahora, para escribir eso en HTML:

<p>To write a literal &lt; you have to write &lt;. 

… uy. Para que funcione, debe tener alguna forma de distinguir el carácter & de la sintaxis HTML que comienza con &. Así que por eso tienes que escribir:

<p>To write a literal &lt; you have to write &amp;lt;. 

… que se procesa correctamente.

Comentarios

  • Yo diría que es para permitir ambigüedad. Poder incluir dos niveles de interpretación en un contexto.
  • @ user251748 Eso ‘ s no permite la ambigüedad, ‘ s aclara.

Respuesta

Parece que esto se remonta a SCRIPT, que se inventó en 1968.

Hablando en términos generales, SCRIPT se convirtió en SCRIPT / VS, que se convirtió en GML, que se convirtió en SGMLguid que se convirtió en HTML

Aquí está el documento original que presenta SCRIPT:

http://web.mit.edu/smadnick/www/papers/J002.pdf

¿Por qué elegir &? Bueno, imagina que estás en una ventana de terminal. No tienes mouse. No puedes usar las teclas del cursor para recorrer el pantalla. Solo puede escribir en la línea de comando. Si desea eliminar una línea, escriba , para eliminar un carácter, escriba @

Puede ver hacia el final ¢ se usa para denotar un carácter de escape. ciento solía estar en los teclados (turno 6), pero se eliminó. (algo que ver con ascii) la mayoría de los teclados lo reemplazaron con ^ pero algunos con ¬

Así que, de repente, para programar en SCRIPT, es muy difícil escribir el carácter de escape en computadoras nuevas. Debes elegir un carácter de reemplazo. Si usas uno de los símbolos en la misma tecla, algunas personas no podrán escribirlo, porque los fabricantes de teclados todavía están discutiendo.

Debes elegir un carácter de escape de reemplazo para el que solía estar en la tecla 6. ¿Qué eliges?

ingresa la descripción de la imagen aquí

Comentarios

  • No ‘ creo tu respuesta realmente responde la pregunta, pero me gusta mucho tu respuesta.
  • @ChrisG Esta es la única respuesta a la pregunta: ¿por qué & es el carácter de escape en HTML? Sin embargo, dado que se acepta una respuesta que explique qué carácter de escape se acepta, la pregunta probablemente está mal expresada.
  • @DavidArno Pero la pregunta no fue ‘ t por qué & es el carácter de escape, por qué & tiene que ser escapado en sí mismo f.
  • Es cierto, tuve que interpretar la pregunta a un nivel un poco más profundo. Pero fue interesante investigar la respuesta
  • @SebastianRedl, sí, lo veo ahora. Sin embargo, según la forma en que está redactada la pregunta, la leo como » ¿por qué & se usa como carácter de escape, cuando & tiene que ser escapado entonces? » Afortunadamente, algunos de ustedes son mejores que yo leyendo preguntas mal formuladas, así que lo que el OP quería saber obtuvo respuesta 🙂

Respuesta

En cualquier formato de datos, el mecanismo de escape debe escaparse él mismo. El carácter de escape es un carácter especial.

Por ejemplo, quiero mostrar este texto:

Ampersands se escapan como &amp;

Si escribo este HTML como

<p>Ampersands are escaped like <code>&amp;</code> 

se mostrará como:

Ampersands se escapan como &

Así que necesito escribir:

<p>Ampersands are escaped like <code>&amp;amp;</code> 

que se muestra correctamente como:

Ampersands se escapan como &amp;

En muchos idiomas, la barra invertida es un escape personaje. Luego, la cadena literal C:\projects tendrá que escaparse como C:\\projects.

Si se supone que un formato de datos Para poder representar datos arbitrarios, necesita una longitud conocida o un delimitador. El manejo de longitudes conocidas es difícil de manejar en formatos editables por humanos. Pero si tenemos un delimitador, debe poder escapar. Así que necesitamos un mecanismo de escape, y el mecanismo de escape debe escapar por sí mismo. Una solución mínima es utilizar el delimitador como carácter de escape. P.ej. para un delimitador ", la cadena don"t do that podría codificarse como "don""t do that".

Comentarios

  • El carácter Escape ASCII fue diseñado originalmente para este propósito exacto. Su nombre completo es Data Link Escape . Lo usé en una situación de módem / mux antes.

Responder

Porque «&» inicia una entidad, por lo que su uso por sí solo no es HTML válido (aunque algunos navegadores pueden aceptarlo, esto no está garantizado).

Comentarios

  • Los símbolos de unión solitarios están bien en HTML, a menos que formen un y comercial ambiguo , es decir, una referencia de carácter con nombre que no sea ‘ t definido en el estándar HTML. De lo contrario, los símbolos de unión están bien definidos.
  • @amon – claro, pero ‘ s vale la pena señalar que la definición de cuándo ‘ re permitido ha variado entre las diferentes versiones de HTML (HTML2, por ejemplo, solo las permitía si no estaban ‘ t seguidas de un carácter alfanumérico, independientemente de si seguían un punto y coma) , y que incluso con la definición más estricta, aún necesita poder escapar de ellos en algunas circunstancias. Además, aunque HTML permite esto, ni SGML ni XML lo hacen, por lo que los analizadores SGML con un DTD HTML fallarán, y los analizadores XHTML ‘ tampoco lo aceptarán. Por lo tanto, yo no ‘ t recomendaría realmente usar esta función.
  • Primero estaba HTML. Luego vino el caos, ya que todos los proveedores de navegadores hacían lo que querían. Serious Engineers ™ estaban hartos de ese caos y crearon XHTML. Pero escribir XML a mano apesta, así que el caos continuó. Finalmente, el caos fue codificado y llamado HTML5. Analiza el caos muy bien, pero de una manera bien definida. Ya no es útil interpretar HTML5 como un dialecto SGML. Y a excepción de XHTML, HTML nunca fue XML. Pero cada navegador o analizador HTML actualizado de forma remota se ocupará de HTML5 sin problemas, al menos a nivel sintáctico.
  • @amon: Escribir HTML a mano apesta, a menos que encuentre divertido leer las especificaciones de HTML5 sobre la recuperación de errores , no ‘ no se sabe cómo interpretará el analizador cómo el texto HTML se convierte en DOM, ya que hay ‘ demasiados heredados extraños casos de esquina y diferentes formas de escribir lo mismo. A menos que restrinja su HTML a un subconjunto compatible con XHTML de todos modos, en cuyo caso, ¿por qué no escribir XHTML real?

Respuesta

Cada lenguaje de programación o lenguaje de scripting tiene sus identificadores únicos o puede decir palabras clave reservadas que los desarrolladores no pueden usar en el código. Algunos caracteres también están reservados en el HTML. Un ampersand (&) se utiliza como entidad para mostrar caracteres reservados en HTML. Algunos de los ejemplos son los siguientes.

&nbsp; &lt; &gt; 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *