Ik begrijp de grondgedachte achter waarom de meeste HTML-tekenentiteiten zijn gemaakt, maar ik begrijp het doel achter de en-teken HTML-entiteit niet. & bevat meer bits dan een & -symbool, en het bevat zelfs het & al!

Waarom is besloten dat ampersands moeten worden gecodeerd in het formaat dat meer gegevens vereist, in plaats van alleen het symbool te gebruiken?

Commentaren

  • Het is net zoals we een manier hebben om een citaat in een ander citaat op te nemen. Computers hebben al lang het probleem : code kan gegevens zijn in een andere situatie en gegevens kunnen code zijn. wat maakt computers anders dan gewone machines, en wat maakt menselijke taal anders dan de geluiden die dieren maken. Ga nu op pad en zoek naar jezelf!

Antwoord

Om dubbelzinnigheid te vermijden Stel dat u een website over wilt schrijven HTML. Je schrijft de regel: “Om een letterlijke < te schrijven, moet je & lt; schrijven.” Om dat nu in HTML op te schrijven:

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

… oeps. Om het te laten werken, moet u een manier hebben om het teken & te onderscheiden van de HTML-syntaxis die begint met &. Dus daarom moet je schrijven:

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

… wat correct wordt weergegeven.

Opmerkingen

  • Ik zou zeggen dat het is om toe te staan dubbelzinnigheid. Om twee interpretatieniveaus in één context te kunnen opnemen.
  • @ user251748 Dat ‘ s staat geen dubbelzinnigheid toe, het ‘ verduidelijkt het.

Antwoord

Het lijkt erop dat dit helemaal teruggaat tot SCRIPT dat in 1968 werd uitgevonden.

grofweg werd SCRIPT SCRIPT / VS, wat GML werd dat werd SGMLguid die HTML werd

Hier is de originele paper waarin SCRIPT wordt geïntroduceerd:

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

Waarom kiezen voor &? Stel je voor dat je je in een terminalvenster bevindt. je hebt geen muis. je kunt de cursortoetsen niet gebruiken om door de scherm. U kunt alleen typen op de opdrachtregel. Als u een regel wilt verwijderen, typt u , typ om een teken te verwijderen @

Aan het einde zie je ¢ wordt gebruikt om een escape-teken aan te duiden. cent stond vroeger op keyboards (shift 6), maar is weggevallen. (iets dat te maken heeft met ascii) de meeste toetsenborden hebben het vervangen door ^ maar sommige met ¬

Dus als je in SCRIPT programmeert, heb je het super moeilijk om het escape-teken op nieuwe computers te typen. Je moet een vervangend teken kiezen. Als je een van de symbolen op dezelfde toets gebruikt, zullen sommige mensen het niet kunnen typen, omdat toetsenbordfabrikanten nog steeds ruzie hebben.

Je moet kiezen een vervangend escape-teken voor degene die vroeger op toets 6 stond. Wat kies je?

voer een afbeeldingsbeschrijving in hier

Reacties

  • Ik denk niet dat ‘ je antwoord beantwoordt de vraag echt, maar ik vind je antwoord echt heel leuk.
  • @ChrisG Dit is het enige antwoord op de gestelde vraag: waarom is & het escape-teken in HTML? Maar aangezien een antwoord dat uitlegt wat een escape-teken is geaccepteerd, wordt de vraag vermoedelijk slecht uitgedrukt.
  • @DavidArno Maar de gestelde vraag was niet ‘ t waarom & het escape-teken is, daarom moet & zelf worden geëscaped f.
  • Het is waar dat ik de vraag op een iets dieper niveau moest interpreteren. Maar het was interessant om het antwoord te onderzoeken.
  • @SebastianRedl, ja dat zie ik nu. Echter, de manier waarop de vraag is geformuleerd, ik lees het als ” waarom wordt & gebruikt als het escape-teken, wanneer & zelf moet dan worden ontsnapt? ” Gelukkig zijn sommigen van jullie beter in het lezen van slecht geformuleerde vragen dan ik, dus wat wilde het OP weten kreeg antwoord 🙂

Answer

In elk gegevensformaat moet het ontsnappingsmechanisme zelf worden ontsnapt. Het ontsnappingskarakter is een speciaal karakter.

Ik wil bijvoorbeeld deze tekst weergeven:

Ampersands worden geëscaped zoals &amp;

Als ik deze HTML schrijf als

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

, wordt het weergegeven as:

Ampersands worden geëscaped zoals &

Dus ik moet eigenlijk schrijven:

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

wat correct wordt weergegeven als:

Ampersands worden geëscaped zoals &amp;

In veel talen is de backslash een escape karakter. Vervolgens moet de letterlijke tekenreeks C:\projects worden geëscaped als C:\\projects.

Als een gegevensindeling wordt verondersteld willekeurige gegevens kunnen weergeven, het heeft een bekende lengte of een scheidingsteken nodig. Het hanteren van bekende lengtes is onpraktisch in door mensen bewerkbare formaten. Maar als we een scheidingsteken hebben, moet het ontsnapt zijn. We hebben dus een ontsnappingsmechanisme nodig en het ontsnappingsmechanisme moet uit zichzelf ontsnappen. Een minimale oplossing is om het scheidingsteken als escape-teken te gebruiken. Bijv. voor een scheidingsteken ", kan de tekenreeks don"t do that worden gecodeerd als "don""t do that".

Reacties

  • Het ASCII Escape-teken is oorspronkelijk ontworpen voor dit exacte doel. De volledige naam is Data Link Escape . Ik heb het eerder in een modem / mux-situatie gebruikt.

Answer

Omdat “&” start een entiteit, dus het op zichzelf gebruiken ervan is geen geldige HTML (hoewel sommige browsers het accepteren, is dit niet gegarandeerd).

Opmerkingen

  • Eenzame ampersands zijn OK in HTML, tenzij ze een dubbelzinnig ampersand vormen, dwz een benoemde tekenreferentie die n ‘ t gedefinieerd in de HTML-standaard. Anders zijn ampersands goed gedefinieerd.
  • @amon – zeker, maar het ‘ is het vermelden waard dat de definitie van wanneer ze ‘ re allow varieerde tussen verschillende HTML-versies (HTML2 stond ze bijvoorbeeld alleen toe als ze ‘ t waren gevolgd door een alfanumeriek teken, ongeacht of er een puntkomma volgde) , en dat je zelfs met de strengste definitie nog steeds in staat moet zijn om eraan te ontsnappen in sommige omstandigheden. Hoewel HTML dit toestaat, doen noch SGML noch XML het, dus zullen SGML-parsers met een HTML DTD mislukken, en XHTML-parsers zullen ‘ het ook niet accepteren. Daarom zou ik ‘ niet aanraden om deze mogelijkheid daadwerkelijk te gebruiken.
  • Eerst was er HTML. Toen was er chaos, aangezien elke browserverkoper deed wat hij maar wilde. Serious Engineers ™ waren die chaos zat en creëerden XHTML. Maar XML met de hand schrijven is klote, dus de chaos ging door. Ten slotte werd de chaos gecodificeerd en HTML5 genoemd. Het ontleedt de chaos prima, maar op een welomschreven manier. Het is niet langer zinvol HTML5 te interpreteren als een SGML-dialect. En behalve XHTML was HTML nooit XML. Maar elke op afstand bijgewerkte browser of HTML-parser kan prima overweg met HTML5, tenminste op syntactisch niveau.
  • @amon: HTML met de hand schrijven is waardeloos, tenzij je het lezen van HTML5-specificaties over foutherstel leuk vindt , ‘ is niet te zeggen hoe de parser zal interpreteren hoe de HTML-tekst DOM wordt, aangezien er ‘ s gewoon te veel rare, oude hoekgevallen en verschillende manieren om hetzelfde te schrijven. Tenzij u uw HTML toch beperkt tot een XHTML-compatibele subset, in welk geval waarom niet gewoon echte XHTML schrijven.

Answer

Elke programmeertaal of scripttaal heeft zijn unieke IDs of je kunt gereserveerde sleutelwoorden zeggen die niet door ontwikkelaars in de code kunnen worden gebruikt. Sommige karakters zijn ook gereserveerd in de HTML. Een ampersand (&) wordt gebruikt als een entiteit om gereserveerde tekens in HTML weer te geven. Enkele voorbeelden zijn als volgt.

&nbsp; &lt; &gt; 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *