Je comprends la raison pour laquelle la plupart des entités de caractère HTML ont été créées, mais je ne comprends pas le but de lentité HTML et esperluette. & contient plus de bits quun symbole &, et il contient même le &!

Pourquoi a-t-il été décidé que les esperluettes devraient être encodées dans un format nécessitant plus de données, au lieu dutiliser simplement le symbole?

Commentaires

  • Cest comme la façon dont nous avons un moyen dinclure un devis dans un autre devis. Les ordinateurs ont depuis longtemps ce problème : le code peut être des données dans une situation différente, et les données peuvent être du code. Cest-à-dire Quest-ce qui différencie les ordinateurs des machines ordinaires et quest-ce qui différencie le langage humain des bruits que font les animaux? Maintenant, allez-y et auto-référence!

Réponse

Pour éviter toute ambiguïté. Supposons que vous souhaitiez écrire un site Web sur HTML. Vous écrivez la ligne: « Pour écrire un littéral < vous devez écrire & lt ;. » Maintenant, pour écrire cela en HTML:

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

… oups. Pour que cela fonctionne, vous devez avoir un moyen de distinguer le caractère & de la syntaxe HTML commençant par &. Cest pourquoi vous devez écrire:

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

… qui rend correctement.

Commentaires

  • Je dirais que cest pour permettre lambiguïté. Pour pouvoir inclure deux niveaux dinterprétation dans un même contexte.
  • @ user251748 Que ‘ ne permet pas lambiguïté, il ‘ la clarifie.

Réponse

Il semble que cela remonte à SCRIPT qui a été inventé en 1968.

en gros, SCRIPT est devenu SCRIPT / VS qui est devenu GML qui est devenu SGMLguid qui est devenu HTML

Voici larticle original présentant SCRIPT:

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

Pourquoi choisir &? bien imaginez que vous êtes dans une fenêtre de terminal. vous navez pas de souris. vous ne pouvez pas utiliser les touches fléchées pour parcourir le écran. Vous ne pouvez taper que sur la ligne de commande. Si vous souhaitez supprimer une ligne, tapez , pour supprimer un caractère, saisissez @

Vous pouvez voir vers la fin ¢ est utilisé pour désigner un caractère déchappement. cent était sur les claviers (shift 6), mais a été abandonné. (quelque chose à voir avec ascii) la plupart des claviers lont remplacé par ^ mais certains par ¬

Donc, tout dun coup, pour programmer dans SCRIPT, vous avez du mal à taper le caractère déchappement sur les nouveaux ordinateurs. Vous devez choisir un caractère de remplacement. Si vous utilisez un des symboles sur la même touche, certaines personnes ne pourront pas le saisir, car les fabricants de claviers se disputent toujours.

Vous devez choisir un caractère déchappement de remplacement pour celui qui se trouvait sur la clé 6. Que choisissez-vous?

entrez la description de limage ici

Commentaires

  • Je ne ‘ Je ne pense pas à votre réponse répond vraiment à la question, mais jaime vraiment, vraiment votre réponse.
  • @ChrisG Cest la seule réponse à la question posée: pourquoi & est le caractère déchappement en HTML? Cependant, comme une réponse expliquant quel caractère déchappement est acceptée, la question est probablement mal exprimée.
  • @DavidArno Mais la question posée nétait ‘ t pourquoi & est le caractère déchappement, cest pourquoi & doit être échappé itsel f.
  • Cest vrai que jai dû interpréter la question à un niveau légèrement plus profond. Mais cétait intéressant de rechercher la réponse
  • @SebastianRedl, oui je vois ça maintenant. Cependant, la façon dont la question est formulée, je la lis comme  » pourquoi & est utilisé comme caractère déchappement, lorsque & doit alors être échappé?  » Heureusement, certains dentre vous sont meilleurs que moi pour lire des questions mal formulées, alors ce que lOP voulait savoir obtenu une réponse 🙂

Réponse

Dans tout format de données, le mécanisme déchappement doit être échappé lui-même. Le caractère déchappement est un caractère spécial.

Par exemple, je souhaite afficher ce texte:

Les esperluettes sont échappées comme &amp;

Si jécris ce code HTML comme

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

il sera affiché comme:

Les esperluettes sont échappées comme &

Jai donc besoin décrire:

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

qui saffiche correctement sous la forme:

Les esperluettes sont échappées comme &amp;

Dans de nombreuses langues, la barre oblique inverse est un échappement personnage. Ensuite, la chaîne littérale C:\projects devra être échappée en tant que C:\\projects.

Si un format de données est supposé être capable de représenter des données arbitraires, il faut soit une longueur connue, soit un délimiteur. La gestion des longueurs connues est compliquée dans les formats modifiables par lhomme. Mais si nous avons un délimiteur, il doit être échappable. Nous avons donc besoin dun mécanisme déchappement, et le mécanisme déchappement doit séchapper. Une solution minimale consiste à utiliser le délimiteur comme caractère déchappement. Par exemple. pour un délimiteur ", la chaîne don"t do that pourrait être codée comme "don""t do that".

Commentaires

  • Le caractère ASCII Escape a été conçu à lorigine dans ce but précis. Son nom complet est Data Link Escape . Je lai déjà utilisé dans une situation de modem / multiplexeur.

Réponse

Parce que « & » démarre une entité, donc lutiliser seule nest pas un HTML valide (bien que certains navigateurs puissent laccepter, ce nest pas garanti).

Commentaires

  • Les esperluettes isolées sont acceptables en HTML, à moins quelles ne forment une esperluette ambiguë , cest-à-dire une référence de caractère nommé qui nest pas ‘ t défini dans le standard HTML. Sinon, les esperluettes sont bien définies.
  • @amon – bien sûr, mais il est ‘ de noter que la définition de quand ils ‘ re allowed a varié entre les différentes versions HTML (HTML2, par exemple, ne les autorisait que si elles nétaient ‘ t suivies dun caractère alphanumérique, peu importe si un point-virgule suivait) , et que même avec la définition la plus stricte, vous devez toujours pouvoir y échapper dans certaines circonstances. De plus, bien que HTML le permette, ni SGML ni XML ne le font, les analyseurs SGML avec une DTD HTML échoueront, et les analyseurs XHTML ne pourront ‘ laccepter non plus. Par conséquent, je ne recommanderais ‘ pas dutiliser cette fonction.
  • Il y avait dabord HTML. Ensuite, il y a eu le chaos, car chaque fournisseur de navigateurs faisait ce quil voulait. Serious Engineers ™ en avait assez de ce chaos et a créé XHTML. Mais écrire du XML à la main est nul, donc le chaos a continué. Enfin, le chaos a été codifié et appelé HTML5. Il analyse le chaos très bien, mais dune manière bien définie. Il nest plus utile dinterpréter HTML5 comme un dialecte SGML. Et à lexception du XHTML, le HTML na jamais été du XML. Mais chaque navigateur ou parseur HTML à jour gérera très bien HTML5, au moins au niveau syntaxique.
  • @amon: écrire du HTML à la main est nul, à moins que vous ne trouviez amusant de lire les spécifications HTML5 sur la récupération derreur , il ‘ ne sait pas comment lanalyseur interprétera comment le texte HTML devient DOM, car il y a ‘ tout simplement trop de bizarre héritage cas dangle et différentes manières décrire la même chose. À moins que vous ne restreigniez quand même votre HTML à un sous-ensemble compatible XHTML, auquel cas pourquoi ne pas simplement écrire du XHTML réel.

Réponse

Chaque langage de programmation ou langage de script a ses identifiants uniques ou vous pouvez dire des mots clés réservés qui ne peuvent pas être utilisés par les développeurs dans le code. Certains caractères sont également réservés dans le HTML. Une esperluette (&) est utilisée comme entité pour afficher les caractères réservés en HTML. Certains des exemples sont les suivants.

&nbsp; &lt; &gt; 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *