Specifiche HTML 4.0/Rappresentazione dei documenti HTML: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Aggiunta template qualità indeterminata |
Correzione via bot |
||
Riga 1:
{{Qualità|avz=indeterminato|data=27 luglio 2010|arg=Da definire}}{{IncludiIntestazione|sottotitolo=Rappresentazione dei documenti HTML|prec=../../Specifiche_HTML_4.0/Conformità, requisiti e raccomandazioni|succ=../I_tipi_di_dati_elementari_in_HTML}}
In questo capitolo esaminiamo come i documenti HTML sono rappresentati in un computer e su Internet.
La sezione
La sezione sulle codifiche dei caratteri si occupa di come quei caratteri possono essere ''rappresentati'' in un ''file'' o quando vengono trasmessi su Internet. Siccome alcune codifiche dei caratteri non possono rappresentare direttamente tutti i caratteri che un autore può voler includere in un documento, HTML offre altri meccanismi, chiamati referenze al carattere, per riferirsi a qualsiasi carattere.
Line 15 ⟶ 10:
Dato che ci sono un gran numero di caratteri appartenenti ai linguaggi umani, ed una gran varietà di modi di rappresentarli, si deve porre particolare attenzione affinché i documenti possano essere compresi da interpreti HTML in tutte le parti del mondo.
=== 5.1
Per promuovere
* ''Un Repertorio'': un insieme di caratteri astratti, quali la lettera latina "A", la lettera cirillica "I", il carattere cinese che significa "acqua", ecc.
* ''Posizioni di codifica'': un insieme di riferimenti interi ai caratteri nel repertorio.
Ciascun documento SGML (incluso ogni documento HTML) è una sequenza di caratteri dal repertorio. I sistemi di computer identificano ciascun carattere con la sua posizione di codifica; per esempio,
=== 5.2 Codifiche dei caratteri ===
Ciò che queste Specifiche chiamano ''codifica dei caratteri'' è noto con nomi differenti in altre specifiche (il che può creare confusione). Tuttavia il concetto è in larga misura lo stesso da un capo
Il parametro "charset" identifica una codifica dei caratteri, che è un metodo per convertire una sequenza di byte in una sequenza di caratteri. Questa conversione corrisponde in modo naturale allo schema di attività del Web: i server inviano i documenti HTML agli interpreti HTML come un flusso di byte; gli interpreti HTML li interpretano come una sequenza di caratteri. Il metodo di conversione può variare da semplice corrispondenza uno-a-uno a schemi di sostituzione complessi o algoritmi.
Una semplice tecnica di codifica un-byte-per-carattere non è sufficiente per stringhe di testo basate su un repertorio di caratteri ampio quanto ISO10646. Vi sono molte codifiche differenti di parti di ISO10646 in aggiunta a codifiche
==== 5.2.1 Scegliere una codifica ====
Gli strumenti di creazione (ad es., gli editori di testo) possono codificare i documenti HTML in una codifica dei caratteri di loro scelta, e questa scelta dipende largamente dalle convenzioni usate dal software di sistema. Questi strumenti possono usare una qualsiasi conveniente codifica che includa la maggior parte dei caratteri contenuti nel documento, a patto che la codifica sia specificata correttamente. Quei caratteri occasionali che non rientrano nella codifica possono ugualmente essere rappresentati per mezzo delle referenze al carattere. Queste si riferiscono sempre
I server e i proxy server possono cambiare una codifica dei caratteri (ciò viene detto ''transcodifica'')
Codifiche dei caratteri comunemente usate sul Web includono
Queste Specifiche non regolano quali codifiche dei caratteri un interprete HTML debba supportare.
Line 46 ⟶ 41:
'''Note su particolari codifiche ''' <br>
Quando si trasmette testo HTML in UTF-16 (charset=UTF-16), i dati del testo dovrebbero essere trasmessi secondo
Inoltre, per massimizzare le possibilità di una corretta interpretazione, si raccomanda che i documenti trasmessi come UTF-16 inizino sempre con un carattere ZERO-WIDTH NON-BREAKING SPACE (valore esadecimale FEFF, detto anche Byte Order Mark (BOM)) che, rovesciando
Il formato di trasformazione UTF-1
==== 5.2.2 Specificare la codifica dei caratteri ====
Come fa un server a determinare quale codifica dei caratteri si applica ad un documento da lui servito? Alcuni server esaminano i primi byte del documento, o controllano rispetto ad un database di ''file'' e di codifiche noti. Molti server recenti danno ai gestori del Web più controllo sulla configurazione del parametro charset di quello che fanno i server più vecchi. I gestori del Web dovrebbero usare questi meccanismi per trasmettere un parametro "charset" ogni volta che è possibile, ma dovrebbero fare attenzione a non identificare un documento con il valore del parametro "charset" sbagliato.
Come fa un interprete HTML a sapere quale codifica dei caratteri è stata usata? É il server che dovrebbe fornire questa informazione. Il modo più diretto per un server di informare
<tt>Content-Type: text/html; charset=EUC-JP</tt>
Line 61 ⟶ 56:
Si consulti la sezione sulla conformità per la definizione di text/html.
Il protocollo HTTP ([http://ds.internic.net/rfc/rfc2068.txt RFC2068], sezione 3.7.1) cita
Per andare incontro alle limitazioni dei server o delle loro configurazioni, i documenti HTML possono includere informazioni esplicite riguardanti la codifica dei caratteri;
Per esempio, per specificare che la codifica dei caratteri del documento corrente è "EUC-JP", un documento dovrebbe includere la seguente dichiarazione <tt>META</tt>:
Line 69 ⟶ 64:
<tt><META http-equiv="Content-Type" content="text/html; charset=EUC-JP"></tt>
La dichiarazione <tt>META</tt> deve essere usata unicamente quando la codifica dei caratteri è organizzata in modo tale che i caratteri ASCII rappresentano sé stessi (almeno fino a che
Per i casi in cui né il protocollo HTTP né
Per riassumere, gli interpreti HTML conformi devono osservare le seguenti priorità nel determinare la codifica dei caratteri di un documento (in ordine descrescente di priorità):
# Un parametro HTTP <tt>charset</tt> in un campo <tt>Content-Type</tt>.
# Una dichiarazione <tt>META</tt> con <tt>http-equiv</tt> impostato a <tt>Content-Type</tt> e un valore assegnato a <tt>charset</tt>.
#
In aggiunta a questa lista di priorità,
Gli interpreti HTML possono fornire un meccanismo che permette agli utenti di anullare informazioni <tt>charset</tt> incorrette. Tuttavia, se un inteprete HTML fornisce un tale meccanismo, deve offrirlo solo per la navigazione e non per la composizione, per evitare la creazione di pagine Web marcate con un parametro <tt>charset</tt> incorretto.
:''Nota. Se, per una specifica applicazione, diventa necessario riferirsi a caratteri al di fuori
=== 5.3 Referenze al carattere ===
Una data codifica dei caratteri può non essere in grado di esprimere tutti i caratteri
Le referenze al carattere in HTML possono apparire in due forme:
* Referenze al carattere numeriche (decimali oppure esadecimali).
* Referenze al mediante entità carattere.
Le referenze al carattere
:'''''Nota.'''
:'''''Nota.''' In SGML, è possibile eliminare il ";" finale dopo una referenza al carattere in alcuni casi (ad es., a fine riga, o immediatamente prima di un tag). In altri casi non può essere eliminato (ad es., nel mezzo di una parola). Si raccomanda di usare sempre il ";" per evitare problemi con quegli interpreti HTML che richiedono la presenza di questo carattere. ''
==== 5.3.1 Referenze al carattere numeriche ====
Le ''referenze al carattere numeriche'' specificano la posizione di codifica di un carattere
* La sintassi <tt>&#</tt><tt>D;</tt>, dove D è un numero decimale, si riferisce al numero di carattere decimale D
* La sintassi <tt>&#</tt><tt>xH;</tt> o <tt>&#</tt><tt>XH;</tt>, dove H è un numero esadecimale, si riferisce al numero di carattere esadecimale H
Ecco alcuni esempi di referenze al carattere numeriche:
* <tt></tt><tt>29;</tt> (in decimale) rappresenta la lettera "a" con un piccolo cerchio sopra (usata, per esempio, in norvegese).
Line 104 ⟶ 99:
* <tt>&#X<tt></tt>e5;</tt> (in esadecimale) rappresenta ancora lo stesso carattere.
* <tt></tt><tt>048;</tt> (in decimale) rappresenta la lettera cirillica maiuscola "I".
* <tt>&#x</tt><tt>6C34;</tt> (in esadecimale) rappresenta il carattere cinese che indica
:'''''Nota.''' Sebbene la rappresentazione esadecimale non sia definita
==== 5.3.2 Referenze al carattere mediante entità carattere ====
Per dare agli autori un modo più intuitivo per riferirsi ai caratteri
Le referenze al carattere mediante entità carattere sono sensibili alla forma maiuscola/minuscola delle lettere che le specificano. Quindi, <tt>&Ar</tt><tt>ing;</tt> si riferisce a un carattere (A maiuscola con anello) diverso da <tt>&ar</tt><tt>ing;</tt> (a minuscola con anello).
Line 119 ⟶ 114:
* <tt>&a</tt><tt>mp;</tt> rappresenta il segno &.
* <tt>&qu</tt><tt>ot;</tt> rappresenta il segno di interpunzione ".
Gli autori che desiderano inserire il carattere "<" nel testo dovrebbero usare <tt>&l</tt><tt>t;<tt> (ASCII decimale 60) per evitare possibili confusioni con
Gli autori dovrebbero usare <tt>&a</tt><tt>mp;</tt> (ASCII decimale 38) invece di "&" per evitare confusione con
Alcuni autori usano la referenza al carattere mediante entità carattere <tt>&qu</tt><tt>ot;</tt> per codificare le istanze del segno di interpunzione doppie virgolette (") dato che quel carattere può essere usato per delimitare i valori di attributo.
=== 5.4 Caratteri non visualizzabili ===
Un interprete HTML può non essere in grado di riprodurre tutti i caratteri in un documento in maniera significativa, ad esempio, perché
Poiché vi sono molte cose che possono essere fatte in questi casi, questo documento non prescrive alcun comportamento specifico. A seconda
# Adottare un meccanismo chiaramente visibile, ma non fastidioso, per allertare
# Se i caratteri mancanti sono presentati usando la loro rappresentazione numerica, usare la forma esadecimale (non quella decimale), dato che questa è la forma usata negli standard degli insiemi di caratteri.
{{Conteggio pagine|[[Speciale:Statistiche]]}}
|