Megértem az indoklást, amiért a HTML karakter Entitások nagy része létrejött, de nem értem az ampersand HTML entitás mögött meghúzódó célt. &
több bitet tartalmaz, mint egy &
szimbólum, és még benne van az &
is!
Miért döntöttek úgy, hogy az ampersandokat csak a szimbólum használata helyett több adatot igénylő formátumban kell kódolni?
Megjegyzések
- Olyan, mint ahogyan egy idézetet beilleszthetünk egy másik idézetbe. A számítógépeknél már régóta fennáll ez a probléma : a kód lehet adat más helyzetben, és az adat kód is. mi különbözteti meg a számítógépeket a hétköznapi gépektől, és mi különbözteti meg az emberi nyelvet az állatok által keltett zajoktól. Most menjen tovább, és önreferencia!
Válasz
A kétértelműség elkerülése érdekében. Tegyük fel, hogy erről weboldalt szeretne írni HTML. Ön írja a következő sort: “A literál < megírásához & lt ;.” Most, hogy ezt HTML-be írja:
<p>To write a literal < you have to write <.
… hoppá. Ahhoz, hogy működőképes legyen, valamilyen módon meg kell különböztetni az &
karaktert a &
kezdetű HTML szintaxistól. Ezért kell írnia:
<p>To write a literal < you have to write &lt;.
… ami rendesen megjelenik.
Megjegyzések
- Azt mondanám, hogy megengedem a kétértelműséget. Ahhoz, hogy két értelmezési szintet be lehessen vonni egy kontextusba.
- @ user251748 Ez ‘ nem engedi meg a kétértelműséget, ez ‘ pontosítja.
Válasz
Úgy tűnik, hogy ez egészen az 1968-ban kitalált SCRIPT-ig nyúlik vissza.
Nagyjából szólva a SCRIPT SCRIPT / VS lett, amely GML lett, és lett Az SGMLguid, amely HTML lett.
Íme az eredeti cikk, amely bemutatja a SCRIPT-t:
http://web.mit.edu/smadnick/www/papers/J002.pdf
Miért válassza a &
lehetőséget? Képzelje el, hogy terminálablakban van. Nincs egere. Nem használhatja a kurzor gombjait a képernyőn. Csak a parancssorba gépelhet. Ha törölni szeretne egy sort, írja be az , egy karakter törléséhez írja be a következőt: @
A vége felé láthatja ¢ a menekülési karakter jelölésére szolgál. cent korábban billentyűzeteken volt (6. váltás), de elejtették. (valami köze van az ascii-hoz) a legtöbb billentyűzet helyettesítette a ^ -val, de néhányan a ¬-re.
Tehát hirtelen a SCRIPT-be programozva rendkívül nehéz megírnia a menekülési karaktert új számítógépeken. Ki kell választania egy helyettesítő karaktert. Ha egy szimbólumot használ ugyanazon a billentyűn, egyesek nem fogják tudni beírni, mert a billentyűzetgyártók még mindig vitatkoznak.
Válasszon egy helyettesítő menekülési karakter a 6. kulcson használt karakterhez. Mit választasz?
Megjegyzések
- Nem gondolom a válaszod ‘ valóban válaszol a kérdésre, de nagyon-nagyon tetszik a válaszod.
- @ChrisG Ez az egyetlen válasz a feltett kérdésre: miért & a menekülési karakter HTML-ben? Mivel azonban elfogadják a menekülési karakter megmagyarázására adott választ, a kérdés feltehetően rosszul van megfogalmazva.
- @DavidArno De a feltett kérdés nem volt ‘ t miért & a escape karakter, ezért & miért kellett elkerülni f.
- Igaz, hogy kissé mélyebb szinten kellett értelmeznem a kérdést. De érdekes volt kutatni a választ
- @SebastianRedl, igen, ezt most látom. Azonban a kérdés megfogalmazásának módjaként úgy olvastam, hogy ” miért használom & menekülési karakterként, amikor & t meg kell menekülni? ” Szerencsére néhányan közületek jobban tudják olvasni a rosszul megfogalmazott kérdéseket, mint én, bár én azt akarom tudni megkapta a választ 🙂
Válasz
Bármely adatformátumban a menekülési mechanizmust el kell kerülni. A menekülési karakter különleges karakter.
Például ezt a szöveget szeretném megjeleníteni:
Az amszterkok el vannak hagyva, például
&
Ha ezt a HTML-t úgy írom,
<p>Ampersands are escaped like <code>&</code>
akkor megjelenik mint:
Az amszterkok el vannak ugrva, például
&
Tehát valójában írnom kell:
<p>Ampersands are escaped like <code>&amp;</code>
amely helyesen jelenik meg:
Az amszterdamok úgy kerülnek el, mint a
&
Sok nyelvben a visszavonás egy menekülés karakter. Ezután a C:\projects
szó szerinti karakterláncot meg kell kerülni C:\\projects
néven.
Ha egy adatformátumot állítólag tetszőleges adatokat képes ábrázolni, vagy ismert hosszra, vagy elválasztóra van szükség. Az ismert hosszúságok kezelése nehézkes az ember által szerkeszthető formátumokban. De ha van határolónk, akkor annak megkerülhetőnek kell lennie. Szükségünk van tehát egy menekülési mechanizmusra, és a menekülési mechanizmusnak el kell menekülnie önmagától. Az egyik minimális megoldás az elválasztó karakter használata menekülési karakterként. Például. egy elválasztó "
esetén a don"t do that
karakterlánc kódolható "don""t do that"
.
Megjegyzések
- Az ASCII Escape karaktert eredetileg erre a célra tervezték. Teljes neve Data Link Escape . Korábban modem / mux helyzetben használtam.
Válasz
Mert “” indít egy entitást, így önmagában történő használata nem érvényes HTML (bár néhány böngésző elfogadhatja, ez nem garantált).
Megjegyzések
- A magányos jelzők rendben vannak a HTML-ben, hacsak nem alkotnak kétértelmű jelet , azaz egy megnevezett karakter hivatkozást, amely nem ‘ t a HTML szabványban definiálva. Egyébként az és jelek jól definiálhatók.
- @amon – biztos, de ‘ érdemes megjegyezni, hogy a definíció, amikor ‘ re allow változatos volt a különböző HTML verziók között (a HTML2 például csak akkor engedélyezte őket, ha ‘ t nem követett alfanumerikus karakter, függetlenül attól, hogy pontosvessző következett-e) , és hogy a legszigorúbb meghatározás mellett is képesnek kell lennie arra, hogy elkerülje őket bizonyos körülmények között. Továbbá, bár a HTML ezt megengedi, sem az SGML, sem az XML nem teszi lehetővé, ezért a HTML DTD-vel rendelkező SGML-elemzők nem fognak működni, és az XHTML-elemzők sem fogják elfogadni ‘. Ezért nem javasolnám ‘ ennek a lehetőségnek a tényleges használatát.
- Először HTML volt. Aztán káosz következett be, mivel minden böngésző eladó azt csinálta, amit szeretett. A komoly mérnököknek elege lett a káoszból, és létrehozták az XHTML-t. De az XML kézi írása szar, így a káosz tovább folytatódott. Végül a káoszt kodifikálták és HTML5-nek hívták. Csak rendesen, de jól körülhatárolható módon elemzi a káoszt. A HTML5-et SGML-dialektusként értelmezni már nem hasznos. És az XHTML kivételével a HTML soha nem volt XML. De minden távolról naprakész böngésző vagy HTML elemző rendben foglalkozik a HTML5-tel, legalábbis szintaktikai szinten.
- @amon: A HTML kézi írása szar, hacsak nem találja a HTML5 specifikációk olvasását a hiba helyreállításában , ‘ nem mondja el, hogy az elemző hogyan értelmezi a HTML szöveg DOM-ját, mivel ‘ túl sok furcsa, örökölt sarok esetek és ugyanazon írás különböző módjai. Hacsak nem korlátozza a HTML-t egy XHTML-kompatibilis részhalmazra, akkor miért nem csak a tényleges XHTML-t írja.
Válasz
Minden programozási nyelvnek vagy szkriptnyelvnek megvan az egyedi azonosítója, vagy mondhat fenntartott kulcsszavakat, amelyeket a fejlesztők nem használhatnak a kódban. Néhány karakter a HTML-ben is van fenntartva. Az ampersandot (&) entitásként használják a fenntartott karakterek megjelenítésére HTML-ben. Néhány példa a következő.
< >