Setul de caractere in document

Intended audience: coderi XHTML/HTML (folosind editoare sau scripturi), dezvoltatori de script (PHP, JSP, etc.), coderi CSS, dezvoltatori XSLT, manageri de proiecte Web, si oricine vrea sa inteleaga ce este Setul de caracter in document si cum relationeaza cu codificarea folosita intr-un document sau pagina.

Question

Ce este 'Setul de Caractere in Document' pentru XML si HTML, si cum relationeaza cu codificarea folosita pentru respectivul document?

Answer

Pentru simplificare, si fiind pe aceeasi linie cu practicile uzuale, cand ne referim la Unicode in acest articol, ne referim la setul de caractere definit atat de Unicode cat si de ISO/IEC 10646.

Setul de caractere a documentului sau setul de caractere de baza din XML si HTML (de la versiunea 4.0) este Setul de Caractere Universal(UCS) definit atat de standardele ISO/IEC 10646 cat si Unicode, care sunt indentificarea cod pentru cod.

Asta inseamna ca modelul logic care descrie cum sunt procesate XML si HTML este descris in termenii setului de caractere Unicode.

Asta nu inseamna ca toate documentele HTML si XML trebuie sa fie codificate ca Unicode, dar inseamna ca aceste documente pot contine numai caractere definite de Unicode. Seturile de carcatere si codificarile de caracter sunt doua lucruri diferite - de exemplu, repertoriul intreg al Unicode poate fi codificat in mai multe feluri (UTF-8, UTF-16 si UTF-32). Orice codificare de caracter poate fi folosita pentru documentul tau atata timp cat este declarata cum trebuie si caracterele pe care le reprezinta sunt un subset al repertoriului Unicode. (Ar fi aproape imposibil sa gasesti unul care nu este un subset.)

Pe de alta parte, este o idee buna sa folosesti codificarea Unicode cand este posibil, pentru ca simplifica multe aspecte a Internationalizarii Web si este suportat de majoritatea programelor care fac legatura dintre utilizator si WEB si de toate procesoarele XML.

O consecinta importanta a setului de caractere a documentului este: valoarea referintelor caracterelor numerice (cum este ǵ si ǵ pentru LITERA G MICA LATINA CU ACUTE) sunt interpretate ca si carcatere Unicode - indiferent de ce codificare folosesti pentru documentul tau. Aceasta reprezinta o sursa comuna de erori printre cei care nu stiu sa faca aceasta disinctie.

By the way

In practica, nu toate caracterele Unicode pot fi folosite oriunde in XML si HTML. De exemplu, unele caractere sunt excluse din lucruri precum etichetele cu numele (tag names) si unele caractere de control sunt excluse din continut. Totusi, XML 1.1 permite folosirea mai multor caractere decat XML 1.0 pentru lucruri cum sunt etichetele cu numele.

Informatii istorice

HTML 2.0 definea ca toate caracterele dintr-un document HTML sa fie interpretate relativ la ISO 8859-1 (numit si ISO Latin 1), dar anunta ca toate versiunile ulterioare de HTML vor folosi un seperset al acestuia, Unicode (sau ISO 10646), ceea ce inseamna ca o mare parte a carcaterelor lumii sunt disponibile.

Discutia despre folosirea corecta a Unicode pe Internet ( RFC 2130, Aprilie 1997, si RFC 2070, Ianuarie 1997) inca nu erau finalizate cand HTML 3.2 a aparut (Ianuarie 1997), asa ca includerea Unicode in HTML a trebuit sa astepte HTML 4.0 (Decembrie 1997).