Set di caratteri di un documento

Domanda

Qual è il 'Set di caratteri di un documento' per XML e HTML e come si mette in relazione alla codifica che uso per i miei documenti?

Risposta

Per semplicità, e in linea che le prassi consolidate, quando ci si riferisce a Unicode in questa FAQ ci si riferisce al set di caratteri definito sia da Unicode sia da ISO/IEC 10646.

Il set di caratteri di un documento o set di caratteri di base di XML e HTML (dalla versione 4.0) è l'Universal Character Set (UCS) definito sia dallo standard ISO/IEC 10646 sia dallo standard Unicode, che sono identici a livello di codice.

Ciò significa che il modello logico che descrive come vengono elaborati XML e HTML, è descritto in termini di set di caratteri Unicode.

Ciò non significa che tutti i documenti HTML e XML devono essere codificati come Unicode, ma significa che questi documenti possono contenere soltanto caratteri definiti da Unicode. Si noti che i set di caratteri e le codifiche sono aspetti diversi; per esempio, il repertorio completo di Unicode può essere codificato in più di un modo, per esempio, UTF-8, UTF-16 e UTF-32. Qualsiasi codifica può essere utilizzata per i propri documenti a condizione che sia correttamente dichiarata e sia un sottoinsieme del repertorio Unicode. (Sarebbe molto inusuale trovarne uno che non è un sottoinsieme.)

D'altro canto, è una buona idea utilizzare una codifica Unicode quando possibile, poiché semplifica molti aspetti dell'internazionalizzazione sul Web ed è ampiamente supportata dagli agenti utente HTML e da tutti i processori XML.

Un'importante conseguenza del set di caratteri del documento è che i valori dei riferimenti dei caratteri numerici (come ǵ per la LETTERA G MINUSCOLA CON ACCENTO ACUTO) sono interpretati come caratteri Unicode, indipendentemente dalla codifica utilizzata per il documento. Questa è una comune fonte di errori tra chi non ha ben chiara la differenza.

Altre informazioni

In pratica, non tutti i caratteri Unicode possono essere utilizzati ovunque in XML e in HTML. Per esempio, alcuni caratteri sono esclusi da oggetti quali nomi di tag di un elemento e alcuni caratteri di controllo sono esclusi dai contenuti. Si noti, tuttavia, che XML 1.1 permette l'utilizzo di un maggior numero di caratteri per oggetti come tag di un elemento rispetto a XML 1.0.

Historical information

HTML 2.0 ha stabilito che tutti i caratteri in un documento HTML devono essere interpretati con riferimento a ISO 8859-1 (noto anche come ISO Latin 1), ma ha anche stabilito che tutte le versioni future di HTML utilizzeranno un superset, cioè, Unicode (o ISO 10646), il che significa che è disponibile un vasto numero di caratteri di tutto il mondo.

La discussione sul modo corretto per utilizzare Unicode su Internet ( RFC 2130, aprile 1997 e RFC 2070, gennaio 1997) non è ancora conclusa al momento in cui vide la luce HTML 3.2 (gennaio 1997) e quindi l'inserimento di Unicode in HTML ha dovuto attendere HTML 4.0 (dicembre 1997).