Jeg forstår begrunnelsen bak hvorfor det meste av HTML-karakterenhetene ble opprettet, men jeg forstår ikke formålet bak den HTML-unike enheten. &
inneholder flere biter enn et &
-symbol, og det har til og med &
allerede inne!
Hvorfor ble det bestemt at bokstaver skulle kodes i formatet som krever mer data, i stedet for bare å bruke symbolet?
Kommentarer
- Det er som hvordan vi har en måte å inkludere et tilbud i et annet tilbud. Datamaskiner har lenge hatt dette problemet : kode kan være data i en annen situasjon, og data kan være kode. Det vil si hva som skiller datamaskiner fra vanlige maskiner, og hva som gjør menneskespråk annerledes enn lydene dyr lager. Gå fremover og referer selv!
Svar
For å unngå tvetydighet. Anta at du vil skrive et nettsted om HTML. Du skriver linjen: «For å skrive en bokstavelig < må du skrive & lt ;.» Nå, for å skrive det ned i HTML:
<p>To write a literal < you have to write <.
… oops. For å få det til å fungere, må du ha en eller annen måte å skille tegnet &
fra HTML-syntaksen som begynner med &
. Så derfor må du skrive:
<p>To write a literal < you have to write &lt;.
… som gjengis riktig.
Kommentarer
- Jeg vil si det er å tillate tvetydighet. Å kunne inkludere to nivåer av tolkning i en sammenheng.
- @ user251748 At ‘ s ikke tillater tvetydighet, det ‘ s klargjør det.
Svar
Det ser ut til at dette går helt tilbake til SCRIPT som ble oppfunnet i 1968.
grovt sett ble SCRIPT SCRIPT / VS som ble GML som ble SGMLguid som ble HTML
Her er originalpapiret som introduserer SCRIPT:
http://web.mit.edu/smadnick/www/papers/J002.pdf
Hvorfor velge &
? Tenk deg at du er i et terminalvindu. du har ingen mus. du kan ikke bruke piltastene til å krysse Du kan bare skrive på kommandolinjen. Hvis du vil slette en linje, skriv , for å slette et tegn, skriv @
Du kan se mot slutten ¢ brukes til å betegne en rømningskarakter. cent pleide å være på tastaturer (skift 6), men ble droppet. (noe å gjøre med ascii) de fleste tastaturer erstattet det med ^ men noen med ¬
Så plutselig for å programmere i SCRIPT har du veldig vanskelig for å skrive escape-tegnet på nye datamaskiner. Du må velge et erstatningskarakter. Hvis du bruker ett av symbolene på samme tast, vil ikke noen kunne skrive det, fordi tastaturprodusenter fremdeles krangler.
Du må velge et erstatningstegn for det som pleide å være på nøkkel 6. Hva velger du?
Kommentarer
- Jeg tror ikke ‘ ikke tror svaret ditt svarer virkelig på spørsmålet, men jeg liker virkelig svaret ditt.
- @ChrisG Dette er det eneste svaret på spørsmålet: hvorfor er & fluktkarakteren I HTML? Men siden et svar som forklarer hva en rømningskarakter blir akseptert, er spørsmålet antagelig dårlig uttrykt.
- @DavidArno Men spørsmålet som ble stilt, var ikke ‘ t hvorfor & er fluktkarakteren, det var grunnen til at & må unnslippe seg f.
- Det var sant at jeg måtte tolke spørsmålet på et litt dypere nivå. Men det var interessant å undersøke svaret
- @ SebastianRedl, ja jeg ser det nå. Men slik spørsmålet er formulert, leste jeg det som » hvorfor brukes & som rømningstegn, når & i seg selv må da rømmes? » Heldigvis er noen av dere flinkere til å lese dårlig formulerte spørsmål enn jeg er, så hva OP ønsket å vite fikk svar 🙂
Svar
I et hvilket som helst dataformat må rømmingsmekanismen unngås i seg selv. Fluktfiguren er en spesiell karakter.
For eksempel vil jeg vise denne teksten:
Ampersands rømmer som
&
Hvis jeg skriver denne HTML-koden som
<p>Ampersands are escaped like <code>&</code>
vil den vises som:
Bokstaver rømmes som
&
Så jeg trenger faktisk å skrive:
<p>Ampersands are escaped like <code>&amp;</code>
som vises riktig som:
Ampersands rømmer som
&
På mange språk er tilbakeslag en flukt karakter. Deretter må den bokstavelige strengen C:\projects
unnslippes som C:\\projects
.
Hvis et dataformat skal være i stand til å representere vilkårlige data, trenger den enten en kjent lengde eller en avgrenser. Håndtering av kjente lengder er uhåndterlig i formater som kan redigeres av mennesker. Men hvis vi har en avgrenser, må den være unnslippelig. Så vi trenger en rømningsmekanisme, og rømningsmekanismen må unnslippe seg selv. En minimal løsning er å bruke skilletegnet som fluktkarakter. F.eks. for en skilletegn "
, kunne strengen don"t do that
kodes som "don""t do that"
.
Kommentarer
- ASCII Escape-tegnet ble opprinnelig designet for akkurat dette formålet. Dets fulle navn er Data Link Escape . Jeg brukte den i et modem / mux-situasjon før.
Svar
Fordi «&» starter en enhet, så bruk av den i seg selv er ikke gyldig HTML (selv om noen nettlesere godtar den, er dette ikke garantert).
Kommentarer
- Ensomme tegn er OK i HTML, med mindre de danner en tvetydig ampersand , dvs. en navngitt tegnreferanse som ikke er ‘ t definert i HTML-standarden. Ellers er ampersands veldefinerte.
- @amon – sikkert, men det er ‘ det er verdt å merke seg at definisjonen av når de ‘ tillatt har variert mellom forskjellige HTML-versjoner (HTML2, for eksempel, bare tillatt dem hvis de ikke var ‘ t etterfulgt av et alfanumerisk tegn, uavhengig av om et semikolon fulgte) , og at selv med den strengeste definisjonen, trenger du fortsatt å være i stand til å unnslippe dem under noen omstendigheter. Selv om HTML tillater dette, gjør verken SGML eller XML det, så SGML-parsere med en HTML DTD vil mislykkes, og XHTML-parsers vil ikke godta det ‘. Derfor vil jeg ikke ‘ ikke anbefale å bruke dette anlegget.
- Først var det HTML. Så var det kaos, ettersom hver nettleserleverandør gjorde hva de likte. Serious Engineers ™ var lei av dette kaoset og skapte XHTML. Men å skrive XML for hånd suger, så kaoset fortsatte. Til slutt ble kaoset kodifisert og kalt HTML5. Det analyserer kaoset helt fint, men på en veldefinert måte. Det er ikke lenger nyttig å tolke HTML5 som en SGML-dialekt. Og bortsett fra XHTML, var HTML aldri XML. Men hver ekstern nettleser eller HTML-parser vil takle HTML5 helt fint, i det minste på et syntaktisk nivå.
- @amon: Å skrive HTML for hånd suger, med mindre du synes det er morsomt å lese HTML5-spesifikasjoner om feilgjenoppretting. , det ‘ forteller ikke hvordan parseren vil tolke hvordan HTML-teksten blir DOM, da ‘ er bare for mange rare, arv hjørnesaker og forskjellige måter å skrive det samme på. Med mindre du uansett begrenser HTML-en din til et XHTML-kompatibelt delsett, i så fall hvorfor ikke bare skrive faktisk XHTML.
Svar
Hvert programmeringsspråk eller skriptspråk har sine unike identifikatorer, eller du kan si reserverte nøkkelord som ikke kan brukes av utviklere i koden. Noen tegn er også reservert i HTML. Et ampersand (&) brukes som en enhet for å vise reserverte tegn i HTML. Noen av eksemplene er som følger.
< >