Perché la e commerciale (&) un'entità HTML?

2

Capisco la logica alla base del motivo per cui la maggior parte delle entità di carattere HTML sono state create, ma non capisco lo scopo dietro l'e commerciale entità HTML. & contiene più bit di un simbolo & e ha già già & al suo interno!

Perché è stato deciso che le e commerciali dovessero essere codificate nel formato che richiede più dati, invece di usare solo il simbolo?

    
posta Driice 22.02.2018 - 21:00
fonte

4 risposte

14

Per evitare ambiguità. Supponiamo di voler scrivere un sito Web sull'HTML. Scrivi la battuta: "Per scrivere un letterale < devi scrivere & lt ;." Ora, scrivilo in HTML:

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

... oops. Per farlo funzionare, devi avere un modo per distinguere il carattere & dalla sintassi HTML iniziando con & . Ecco perché devi scrivere:

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

... che esegue correttamente il rendering.

    
risposta data 22.02.2018 - 21:06
fonte
5

In qualsiasi formato di dati, il meccanismo di escape deve essere sottoposto a escape stesso. Il carattere di escape è un carattere speciale.

Ad esempio, voglio visualizzare questo testo:

Ampersands are escaped like &amp;

Se scrivo questo HTML come

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

verrà visualizzato come:

Ampersands are escaped like &

Quindi in realtà devo scrivere:

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

che viene visualizzato correttamente come:

Ampersands are escaped like &amp;

In molte lingue, il backslash è un carattere di escape. Quindi, la stringa letterale C:\projects dovrà essere sottoposta a escape come C:\projects .

Se si suppone che un formato di dati sia in grado di rappresentare dati arbitrari, ha bisogno di una lunghezza nota o di un delimitatore. Gestire lunghezze note è poco pratico in formati modificabili dall'uomo. 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 è usare 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' .

    
risposta data 22.02.2018 - 21:08
fonte
5

Sembra che questo risalga a SCRIPT, inventato nel 1968.

grosso modo, SCRIPT è diventato SCRIPT / VS che è diventato GML che è diventato SGMLguid che è diventato HTML

Questo è il documento originale che introduce SCRIPT:

link

Perché scegliere & ? bene immagina di essere in una finestra del terminale. non hai il mouse non è possibile utilizzare i tasti cursore per attraversare lo schermo. Puoi solo digitare sulla riga di comando. se vuoi eliminare una riga, digita % , per eliminare un carattere, digita @

Puoi vedere verso la fine ¢ è usato per indicare un personaggio di fuga. cent era usato sulle tastiere (MAIUSC 6), ma è stato eliminato. (qualcosa ha a che fare con ascii) la maggior parte delle tastiere lo ha sostituito con ^ ma con ¬

Quindi, all'improvviso, per programmare in SCRIPT, è molto difficile digitare il carattere di escape sui nuovi computer. Devi scegliere un personaggio sostitutivo, se ne usi uno sullo stesso tasto, alcune persone non saranno in grado di scriverlo, perché i produttori di tastiere stanno ancora discutendo.

Devi scegliere un carattere di escape sostitutivo per quello che prima era sulla chiave 6. Che cosa scegli?

    
risposta data 22.02.2018 - 22:16
fonte
0

Perché "&" avvia un'entità, quindi usarlo da solo non è un codice HTML valido (anche se alcuni browser potrebbero accettarlo, questo non è garantito).

    
risposta data 22.02.2018 - 21:03
fonte

Leggi altre domande sui tag