Comprendo la logica alla base del motivo per cui sono state create la maggior parte delle entità carattere HTML, ma non capisco lo scopo dietro lentità HTML e commerciale. &
contiene più bit di un simbolo &
e contiene già il &
al suo interno!
Perché è stato deciso che le e commerciali dovrebbero essere codificate nel formato che richiede più dati, invece di usare solo il simbolo?
Commenti
- È come il modo in cui abbiamo un modo per includere una citazione allinterno di unaltra citazione. I computer hanno da tempo questo problema : il codice può essere dati in una situazione diversa e i dati possono essere codice. Ovvero cosa rende i computer diversi dalle macchine ordinarie e cosa rende il linguaggio umano diverso dai rumori che fanno gli animali. Ora vai avanti e fai riferimento a te stesso!
Rispondi
Per evitare ambiguità. Supponi di voler scrivere un sito web su HTML. Scrivi la riga: “Per scrivere un letterale < devi scrivere & lt ;.” Ora, per scriverlo in HTML:
<p>To write a literal < you have to write <.
… oops. Per farlo funzionare, devi avere un modo per distinguere il carattere &
dalla sintassi HTML che inizia con &
. Ecco perché devi scrivere:
<p>To write a literal < you have to write &lt;.
… che viene visualizzato correttamente.
Commenti
- Direi che è per consentire ambiguità. Per essere in grado di includere due livelli di interpretazione in un contesto.
- @ user251748 That ‘ non consente ambiguità, ‘ lo chiarisce.
Risposta
Sembra che risalga a SCRIPT, inventato nel 1968.
in parole povere, SCRIPT è diventato SCRIPT / VS che è diventato GML che è diventato SGMLguid che è diventato HTML
Ecco il documento originale che introduce SCRIPT:
http://web.mit.edu/smadnick/www/papers/J002.pdf
Perché scegliere &
? beh immagina di essere in una finestra di terminale. non hai il mouse. non puoi usare i tasti cursore per spostarti schermo. Puoi digitare solo dalla riga di comando. se desideri eliminare una riga, digita , per eliminare un carattere, digita @
Puoi vedere verso la fine ¢ è usato per denotare un carattere di escape. cento era sulle tastiere (turno 6), ma è stato abbandonato. (qualcosa che ha a che fare con ascii) la maggior parte delle tastiere lo ha sostituito con ^ ma alcune con ¬
Quindi, allimprovviso, per programmare in SCRIPT hai difficoltà a digitare il carattere di escape sui nuovi computer. Devi scegliere un carattere sostitutivo. Se usi uno dei simboli sullo stesso tasto, alcune persone non saranno in grado di digitarlo, perché i produttori di tastiere stanno ancora discutendo.
Devi scegliere un carattere di escape sostitutivo per quello che si trovava sulla chiave 6. Cosa scegli?
Commenti
- Non ‘ penso che la tua risposta risponde davvero alla domanda, ma mi piace davvero molto la tua risposta.
- @ChrisG Questa è lunica risposta alla domanda posta: perché & il carattere di escape in HTML? Tuttavia, poiché una risposta che spiega quale carattere di escape è stato accettato, la domanda è presumibilmente espressa male.
- @DavidArno Ma la domanda posta non era ‘ t perché & è il carattere di escape, è per questo che è necessario eseguire lescape di & f.
- È vero che ho dovuto interpretare la domanda a un livello leggermente più profondo. Ma è stato interessante cercare la risposta
- @SebastianRedl, sì, ora lo vedo. Tuttavia, per come è formulata la domanda, lho letta come ” perché & viene utilizzato come carattere di escape, quando & stesso quindi deve essere scappato? ” Fortunatamente alcuni di voi sono più bravi a leggere domande mal formulate di me, quindi cosa voleva sapere lOP ricevuto risposta 🙂
Risposta
In qualsiasi formato di dati, il meccanismo di escape deve essere sfuggito da solo. Il carattere di escape è un carattere speciale.
Ad esempio, desidero visualizzare questo testo:
e commerciale sono sottoposti a escape come
&
Se scrivo questo HTML come
<p>Ampersands are escaped like <code>&</code>
verrà visualizzato come:
e commerciale sono preceduti da caratteri di escape come
&
Quindi devo scrivere:
<p>Ampersands are escaped like <code>&amp;</code>
che viene visualizzato correttamente come:
La e commerciale è sottoposta a escape come
&
In molte lingue, la barra rovesciata è una via di fuga personaggio. Quindi, la stringa letterale C:\projects
dovrà essere sottoposta a escape come C:\\projects
.
Se si suppone che il formato dei dati essere in grado di rappresentare dati arbitrari, richiede una lunghezza nota o un delimitatore. La gestione di lunghezze note è difficoltosa nei formati modificabili dagli utenti. Ma se abbiamo un delimitatore, deve essere sfuggito. Quindi abbiamo bisogno di un meccanismo di fuga e il meccanismo di fuga deve sfuggire a se stesso. Una soluzione minima consiste nellusare il delimitatore come carattere di escape. Per esempio. per un delimitatore "
, la stringa don"t do that
potrebbe essere codificata come "don""t do that"
.
Commenti
- Il carattere ASCII Escape è stato originariamente progettato per questo scopo esatto. Il suo nome completo è Data Link Escape . Lho già usato in una situazione modem / mux.
Risposta
Perché “&” avvia unentità, quindi utilizzarlo da solo non è “t HTML valido (sebbene alcuni browser possano accettarlo, questo non è garantito).
Commenti
- La e commerciale solitaria va bene in HTML, a meno che non formi una e commerciale ambigua , ovvero un riferimento a carattere con nome che non è ‘ t definito nello standard HTML. Altrimenti le e commerciali sono ben definite.
- @amon – certo, ma ‘ vale la pena notare che la definizione di quando ‘ ri consentito varia tra le diverse versioni HTML (HTML2, ad esempio, le consentiva solo se non erano ‘ seguite da un carattere alfanumerico, indipendentemente dal fatto che seguisse un punto e virgola) e che anche con la definizione più rigorosa devi ancora essere in grado di sfuggirle in alcune circostanze. Inoltre, sebbene lHTML lo permetta, né lSGML né lXML lo fanno, quindi i parser SGML con un DTD HTML falliranno, e nemmeno i parser XHTML ‘ lo accetteranno. Pertanto, ‘ t raccomanderei di utilizzare effettivamente questa funzione.
- Prima cera lHTML. Poi cera il caos, poiché ogni fornitore di browser faceva quello che voleva. I Serious Engineers ™ erano stufi di quel caos e hanno creato XHTML. Ma scrivere XML a mano fa schifo, quindi il caos è continuato. Infine, il caos è stato codificato e chiamato HTML5. Analizza il caos perfettamente, ma in modo ben definito. Non è più utile interpretare HTML5 come un dialetto SGML. E ad eccezione di XHTML, lHTML non è mai stato XML. Ma ogni browser o parser HTML aggiornato in remoto si occuperà di HTML5 perfettamente, almeno a livello sintattico.
- @amon: scrivere HTML a mano fa schifo, a meno che non trovi divertente leggere le specifiche HTML5 sul recupero degli errori , ‘ non si sa come il parser interpreterà il modo in cui il testo HTML diventa DOM, poiché ci sono ‘ troppe cose strane, legacy casi dangolo e modi diversi per scrivere la stessa cosa. A meno che tu non limiti comunque il tuo HTML a un sottoinsieme conforme a XHTML, nel qual caso perché non scrivere semplicemente XHTML effettivo.
Risposta
Ogni linguaggio di programmazione o linguaggio di scripting ha i suoi identificatori univoci oppure puoi dire parole chiave riservate che non possono essere utilizzate dagli sviluppatori nel codice. Alcuni caratteri sono riservati anche nellHTML. Una e commerciale (&) viene utilizzata come entità per visualizzare caratteri riservati in HTML. Alcuni degli esempi sono i seguenti.
< >