Jeg forstår begrundelsen for, hvorfor de fleste af HTML-karakterenhederne blev oprettet, men jeg forstår ikke formålet bag den ampersand HTML-enhed. & indeholder flere bits end et & -symbol, og det har endda & allerede inde!

Hvorfor blev det besluttet, at ampersands skulle kodes i det format, der kræver flere data, i stedet for blot at bruge symbolet?

Kommentarer

  • Det er som hvordan vi har en måde at inkludere et tilbud i et andet tilbud. Computere har længe haft dette problem : kode kan være data i en anden situation, og data kan være kode. Det er hvad der adskiller computere fra almindelige maskiner, og hvad der adskiller menneskets sprog fra de lyde, som dyr laver. Gå nu frem og referencer selv!

Svar

For at undgå tvetydighed. Antag at du vil skrive et websted om HTML. Du skriver linjen: “For at skrive en bogstavelig < skal du skrive & lt ;.” Nu for at skrive det ned i HTML:

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

… Ups. For at få det til at fungere, skal du have en eller anden måde at skelne tegnet & fra HTML-syntaksen startende med &. Så derfor skal du skrive:

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

… hvilket gengives korrekt.

Kommentarer

  • Jeg vil sige, at det er at tillade tvetydighed. At kunne inkludere to niveauer af fortolkning i en sammenhæng.
  • @ user251748 At ‘ tillader ikke tvetydighed, det ‘ s præciserer det.

Svar

Det ser ud til, at dette går helt tilbage til SCRIPT, som blev opfundet i 1968.

groft sagt blev SCRIPT SCRIPT / VS, som blev GML, som blev SGMLguid, som blev HTML

Her er det originale papir, der introducerer SCRIPT:

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

Hvorfor vælge &? forestil dig, at du er i et terminalvindue. du har ingen mus. du kan ikke bruge piletasterne til at krydse Du kan kun skrive på kommandolinjen. Hvis du vil slette en linje, skal du skrive , for at slette et tegn, skriv @

Du kan se mod slutningen ¢ bruges til at betegne en flugtkarakter. cent plejede at være på tastaturer (skift 6), men blev droppet. (noget med ascii at gøre) de fleste tastaturer erstattede det med ^ men nogle med ¬

Så pludselig har du svært ved at skrive escape-tegnet på nye computere for at programmere i SCRIPT. Du skal vælge en erstatningskarakter. Hvis du bruger et af symbolerne på den samme tast, vil nogle mennesker ikke være i stand til at skrive det, fordi tastaturproducenter stadig argumenterer.

Du skal vælge en erstatning escape tegn for den, der plejede at være på tast 6. Hvad vælger du?

indtast billedbeskrivelse her

Kommentarer

  • Jeg tror ikke ‘ tror ikke dit svar besvarer virkelig spørgsmålet, men jeg kan virkelig godt lide dit svar.
  • @ChrisG Dette er det eneste svar på det stillede spørgsmål: hvorfor er & flugttegnet Eftersom et svar, der forklarer, hvad en flugtkarakter er blevet accepteret, er spørgsmålet sandsynligvis dårligt udtrykt.
  • @DavidArno Men det stillede spørgsmål var ikke ‘ t hvorfor & er flugttegnet, det var derfor & skal undslippe sin egen f.
  • Det er sandt, at jeg var nødt til at fortolke spørgsmålet på et lidt dybere niveau. Men det var interessant at undersøge svaret
  • @ SebastianRedl, ja det ser jeg nu. Men hvordan spørgsmålet formuleres, læste jeg det som ” hvorfor bruges & som flugttegn, når & sig selv skal derefter undslippes? ” Heldigvis er nogle af jer bedre til at læse dårligt formulerede spørgsmål, end jeg er, så hvad OP ønskede at vide fik svar 🙂

Svar

I ethvert dataformat skal den undslippende mekanisme undslippe i sig selv. Escape-karakteren er en speciel karakter.

For eksempel vil jeg vise denne tekst:

Ampersands undslippes ligesom &amp;

Hvis jeg skriver denne HTML som

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

vises den som:

Ampersands undgås som &

Så jeg skal faktisk skrive:

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

som vises korrekt som:

Ampersands undslipper som &amp;

På mange sprog er tilbageslag en flugt Karakter. Derefter skal den bogstavelige streng C:\projects undslippes som C:\\projects.

Hvis et dataformat skal være i stand til at repræsentere vilkårlige data, har den enten brug for en kendt længde eller en afgrænser. Håndtering af kendte længder er uhåndterlig i formater, der kan redigeres af mennesker. Men hvis vi har en afgrænser, skal den være undslippelig. Så vi har brug for en flugtmekanisme, og flugtmekanismen skal undslippe sig selv. En minimal løsning er at bruge afgrænseren som flugtkarakter. For eksempel. for en afgrænser " kunne strengen don"t do that kodes som "don""t do that".

Kommentarer

  • ASCII Escape-tegnet blev oprindeligt designet til netop dette formål. Dets fulde navn er Data Link Escape . Jeg brugte det i en modem / mux-situation før.

Svar

Fordi “&” starter en enhed, så brug af den i sig selv er ikke gyldig HTML (selvom nogle browsere muligvis accepterer den, er dette ikke garanteret).

Kommentarer

  • Ensomme tegn er OK i HTML, medmindre de danner en tvetydig ampersand , dvs. en navngivet tegnreference, der ikke er ‘ t defineret i HTML-standarden. Ellers er ampersands veldefinerede.
  • @amon – helt sikkert, men det er ‘ værd at bemærke, at definitionen af, hvornår de ‘ re allow har varieret mellem forskellige HTML-versioner (HTML2 tillod f.eks. kun dem, hvis de ikke var ‘ t efterfulgt af et alfanumerisk tegn, uanset om et semikolon fulgte) , og at du selv med den strengeste definition stadig har brug for at være i stand til at undslippe dem under nogle omstændigheder. Selvom HTML tillader dette, gør hverken SGML eller XML det, så SGML-parsere med en HTML DTD vil mislykkes, og XHTML-parsers vil ikke ‘ t acceptere det heller. Derfor vil jeg ‘ ikke anbefale at bruge denne facilitet.
  • Først var der HTML. Derefter var der kaos, da enhver browserleverandør gjorde hvad de kunne lide. Serious Engineers ™ var trætte af dette kaos og skabte XHTML. Men at skrive XML i hånden stinker, så kaoset fortsatte. Endelig blev kaoset kodificeret og kaldet HTML5. Det analyserer kaoset fint, men på en veldefineret måde. Det er ikke længere nyttigt at fortolke HTML5 som en SGML-dialekt. Og bortset fra XHTML var HTML aldrig XML. Men hver fjernopdateret browser eller HTML-parser vil klare HTML5 helt fint, i det mindste på et syntaktisk niveau.
  • @amon: At skrive HTML i hånden suger, medmindre du finder det sjovt at læse HTML5-specifikationer om fejlgendannelse , der ‘ fortæller ikke, hvordan parseren fortolker, hvordan HTML-teksten bliver DOM, da der ‘ er bare for mange underlige, arv hjørnesager og forskellige måder at skrive det samme på. Medmindre du alligevel begrænser din HTML til et XHTML-kompatibelt undersæt, i hvilket tilfælde hvorfor ikke bare skrive faktisk XHTML.

Svar

Hvert programmeringssprog eller script-sprog har sine unikke identifikatorer, eller du kan sige reserverede nøgleord, der ikke kan bruges af udviklere i koden. Nogle tegn er også reserveret i HTML. Et ampersand (&) bruges som en enhed til at vise reserverede tegn i HTML. Nogle af eksemplerne er som følger.

&nbsp; &lt; &gt; 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *