Jag förstår motiveringen bakom varför de flesta HTML-teckenenheterna skapades, men jag förstår inte syftet bakom den HTML-entitet som finns i tecken. &
innehåller fler bitar än en &
-symbol, och den har till och med &
i sig redan!
Varför bestämdes det att ampersands ska kodas i det format som kräver mer data, istället för att bara använda symbolen?
Kommentarer
Svar
Det verkar som att det här går ända tillbaka till SCRIPT som uppfanns 1968.
grovt sett blev SCRIPT SCRIPT / VS som blev GML som blev SGMLguid som blev HTML
Här är det ursprungliga dokumentet som introducerar SCRIPT:
http://web.mit.edu/smadnick/www/papers/J002.pdf
Varför välja &
? Tänk dig att du befinner dig i ett terminalfönster. du har ingen mus. Du kan inte använda piltangenterna för att korsa Du kan bara skriva på kommandoraden. Om du vill radera en rad, skriv , för att radera ett tecken, skriv @
Du kan se mot slutet ¢ används för att beteckna en flykt karaktär. cent brukade vara på tangentbord (skift 6) men tappades. (något att göra med ascii) de flesta tangentbord ersatte det med ^ men vissa med ¬
Så plötsligt för att programmera i SCRIPT har du super svårt att skriva escape-karaktären på nya datorer. Du måste välja ett ersättningstecken. Om du använder en av symbolerna på samma tangent kommer vissa människor inte att kunna skriva det eftersom tangentbordstillverkare fortfarande argumenterar.
Du måste välja en ersättningsflykt karaktär för den som brukade vara på nyckel 6. Vad väljer du?
Kommentarer
- Jag tror inte ’ tänker inte ditt svar svarar verkligen på frågan, men jag gillar verkligen ditt svar.
- @ChrisG Detta är det enda svaret på frågan: varför är & flyktecken Eftersom ett svar som förklarar vilken flyktecken som accepteras, är frågan förmodligen dåligt uttryckt.
- @DavidArno Men frågan ställdes inte ’ t varför & är flyktecknet, det var därför & måste undkomma själv f.
- Det är sant att jag var tvungen att tolka frågan på en något djupare nivå. Men det var intressant att undersöka svaret
- @ SebastianRedl, ja det ser jag nu. Men hur frågan formuleras läser jag den som ” varför används & som flyktecken när & själv måste då undkommas? ” Lyckligtvis är en del av er bättre på att läsa dåligt formulerade frågor än jag, men vad OP ville veta fick svar 🙂
Svar
I vilket dataformat som helst måste den flyktande mekanismen undgå själv. Escape-karaktären är en speciell karaktär.
Till exempel vill jag visa den här texten:
Ampersands undviks som
&
Om jag skriver denna HTML som
<p>Ampersands are escaped like <code>&</code>
kommer den att visas som:
Ampersands räddas som
&
Så jag måste faktiskt skriva:
<p>Ampersands are escaped like <code>&amp;</code>
som visas korrekt som:
Ampersands undviks som
&
På många språk är bakåtvänd snedstreck en flykt karaktär. Då måste bokstavssträngen C:\projects
undvikas som C:\\projects
.
Om ett dataformat ska kunna representera godtyckliga data, antingen behöver den en känd längd eller en avgränsare. Det är svårt att hantera kända längder i mänskligt redigerbara format. Men om vi har en avgränsare måste den vara undvikbar. Så vi behöver en flyktmekanism, och flyktmekanismen måste fly sig själv. En minimal lösning är att använda avgränsaren som flyktecken. T.ex. för en avgränsare "
, kan strängen don"t do that
kodas som "don""t do that"
.
Kommentarer
- ASCII Escape-karaktären designades ursprungligen för just detta syfte. Dess fullständiga namn är Data Link Escape . Jag använde det i ett modem / mux-läge tidigare.
Svar
Eftersom ”&” startar en enhet, så att använda den i sig är inte giltig HTML (även om vissa webbläsare kanske accepterar den, är det inte garanterat).
Kommentarer
- Ensamma tecken är OK i HTML, såvida de inte bildar en tvetydig ampersand , dvs en namngiven teckenreferens som inte är ’ t definierad i HTML-standarden. Annars är ampersands väl definierade.
- @amon – visst, men det ’ är värt att notera att definitionen för när de ’ om tillåtna har varierat mellan olika HTML-versioner (HTML2 tillåter till exempel bara dem om de inte var ’ t följt av ett alfanumeriskt tecken, oavsett om ett semikolon följde) , och att du även med den strängaste definitionen fortfarande behöver kunna undkomma dem under vissa omständigheter. Även om HTML tillåter detta, gör varken SGML eller XML, så SGML-parsers med en HTML DTD kommer att misslyckas och XHTML-parsers vinner inte heller ’. Därför skulle jag ’ inte rekommendera att du använder den här funktionen.
- Först fanns det HTML. Sedan uppstod kaos, eftersom varje webbläsarförsäljare gjorde vad de ville. Serious Engineers ™ tröttnade på det kaoset och skapade XHTML. Men att skriva XML för hand suger, så kaoset fortsatte. Slutligen kodifierades kaoset och kallades HTML5. Det analyserar kaoset bra, men på ett väldefinierat sätt. Det är inte längre användbart att tolka HTML5 som en SGML-dialekt. Och förutom XHTML var HTML aldrig XML. Men varje fjärruppdaterad webbläsare eller HTML-parser kommer att hantera HTML5 bara bra, åtminstone på en syntaktisk nivå.
- @amon: Att skriva HTML för hand suger, om du inte tycker att det är roligt att läsa HTML5-specifikationer för felåterställning. , det finns ’ som inte berättar hur tolkaren kommer att tolka hur HTML-texten blir DOM, eftersom det ’ är för många konstiga, arv hörnfodral och olika sätt att skriva samma sak. Om du ändå inte begränsar din HTML till en XHTML-kompatibel delmängd, i vilket fall varför inte bara skriva faktiskt XHTML.
Svar
Varje programmeringsspråk eller skriptspråk har sina unika identifierare eller så kan du säga reserverade nyckelord som inte kan användas av utvecklare i koden. Vissa tecken är också reserverade i HTML-koden. Ett tecken (&) används som en enhet för att visa reserverade tecken i HTML. Några av exemplen är som följer.
< >
För att undvika tvetydighet. Antag att du vill skriva en webbplats om HTML. Du skriver raden: ”För att skriva en bokstavlig < måste du skriva & lt ;.” Nu för att skriva ner det i HTML:
… oj. För att få det att fungera måste du ha något sätt att skilja tecknet
&
från HTML-syntaxen som börjar med&
. Så det är därför du måste skriva:… vilket återges korrekt.
Kommentarer