Cheia de acces n sare lanagigarea in pagina. Sari la inceputul continutului.

Acest document e o traducere. In caz ca apare vreo eroare sau discrepanta, ultima versiune in Engleza este cea autoritativa. Copyright-ul original apartine W3C, dupa cum e aratat mai jos.

Traducator: Claudiu Apetrei, Sorin Velescu

s_gotoW3cHome Internationalizare
 

Codificarea caracterelor pentru incepatori

Cititorii vizati: administratorii de site-uri, utilizatori si oricine care este nesigur despre ceea ce inseamna codificarea caracterelor si vrea sa citeasca un scurt rezumat despre cum ii afecteaza acest lucru.

Translation updated: 2011-06-06 10:30

Intrebare

Ce este codificarea caracterelor si de ce m-ar interesa?

Raspuns

De ce m-ar interesa?

Daca folosesti orice in afara de caracterele de baza necesare pentru Engleza, utilizatorii s-a putea sa nu poata citi text-ul daca nu specifici ce codificare ai folosit.

De exemplu: intentia ta e ca text-ul sa arate :

mojibake1.gif

dar s-ar putea sa fie afisate ca:

mojibake2.gif

Codificarea neadecvata nu numai ca ar putea face text-ul imposibil de citit dar ar putea face ca text-ul sa nu poate fi gasit la cautari sau procesat fiabil in alte moduri.

Ce este codificarea caracterelor?

Cuvintele si propozitiile din text sunt compuse din caractere. Exemple de caractere includ literele Latine á, idograful Chinez sau caracterul Devanagari .

S-ar putea sa nu puteti vedea unele caractere din aceasta pagina din cauza ca nu aveti fonturile necesare. Daca dati click pe locul unde trebuia sa apara caracterul va aparea versiunea grafica. Aceasta pagina este codificata UTF-8.

Caracterele sunt crupate in seturi de caractere (referite ca repertorii uneori). Acesta este numit set de caractere codata cand fiecariu caracter ii este asociat un numar de referinta numit cod punct. Aceste cod-uri de puncte sunt reprezentate in calculator cu ajutorul unuia sau mai multor biti.

De fapt, acest lucru inseamna ca toate caracterele sunt stocate in calculator cu ajutorul unui cod, la fel cum criptarea era folosita in spionaj. Codificare a caracterelor reprezinta cheia pentru descifrarea codului. Este un set de relatii dintre biti reprezentand numere in calculator si caracterele din setul de caractere. Fara cheie, datele arata ca un gunoi.

Termenul derutant set de caractere (charset) este adesea folosit ca referinta la ceea ce in realitate e codificarea caracterelor. Trebuie sa fiti constienti de aceasta referinta, dar incercati sa folositi termenul de criptari caracter oricand este posibil.

Din pacate, exista multe seturi diferite de caractere si criptari de caractere, astfel exista si multe feluri de a face legatura dintre biti, cod punct si caractere. Urmatoarea panou ofera mai multe detalii pentru cei interesati.

De exemplu setul de caractere numit ISO 8859-1 (referit uneori ca Latin1) valoarea decimala a punctului de cod pentru litera é este 233. In ISO 8859-5, acelasi cod punct reprezinta caracterul Chirilic щ. Aceste seturi de caractere contin mai putin de 256 caractere si atribuie puncte cod catre valorile biti direct. Asadar punctul cod cu valoarea 233 este reprezentat de un singur bite cu valoarea 233. Trebuie notat faptul ca acel bite poate reprezenta atat é sau щ, in functie de context.

Exista alternative pentru tratarea pentru o gama de scripturi. De exemplu, cu setul de caractere Unicod, puteti reprezenta ambele caractere in acelasi set. De fapt, Unicode contine intr-un singur set marea majoritate a acaracterelor de care ve-ti avea nevoie. Chiar daca valoarea 233 reprezinta é caracterul Chirilic щ acum are punctiul de cod cu valoarea de 1097. Acest numar este prea mare pentru a fi reprezentat printr-un singur bite. Daca folositi codificarea caracterelor pentru text Unicode numita UTF-8,щ va fi reprezentat pe doi biti, dar punctul de cod al valorii nu reprezinta valorile celor doi biti lipite impreuna - ci presupune decodificari mai complexe. Alte caractere Unicode fac refernita la unul, trei sau chiar patru biti in codificarea UTF-8.

UTF-8 este cea mai folosita metoda de a reprezenta text-ul Unicode in pagini web. UTF-8 nu este singura modalitate de a codifica caractere Unicode. Cu alte cuvinte, un singur punct de cod in setul de caractere Unicode poate fi referinta la secvente diferite de biti in functie de codificarea folosita pentru document. Punctele de cod Unicode pot face referinta la biti folosind una din codificarile numite UTF-8, UTF-16 sau UTF-32. Caracterul Devanagari , corespunde punctului de cod 2325 (care e 915 in codul hexadecimal) si va fi reprezentata de doi biti folosind codificarea UTF-16 (09 15), trei biti cu UTF-8 (E0 A4 95) sau patru biti folosind UTF-32 (00 00 09 15).

* Majoritatea octetilor in zilele noastre sunt compusi din 8 biti. Exista doar 28 (256) moduri unice de a combina cei 8 biti.

De asemenea numerele punct de cod sunt exprimate de cele mai multe ori folosind notatia hexadecimala - in baza 16. De exemplu: 233 in forma hexadecimala este E9. Valorile punctului de cod Unicode sunt scrise sub forma U+0059.

Pot aparea alte complicatii decat cele descrise in panoul precedent (cum ar fi ordinea octetilor si secvente iesire), dar detaliul descris in panoul precedent demonstreaza de ce este important ca aplicatia la care lucrati sa folosesca codificarea caracterelor potrivita pentru datele pe care le contine si sa stie modul cum trebuie procesata codificararea.

Pentru majoritatea cazurilor nu este nevoie sa stiti detaliile. E nevoie doar sa luati in considerare sfatul din sectiunea Cu ce ma afecteaza acest lucru? de mai jos.

Cum influenteaza fonturile?

Un font este o colectie definitii simboluri, definitii de forme folosite pentru afisarea caracterelor.

Odata ce aplicatia dumneavoastra stie ce caractere trebuie sa foloseasca, va cauta in font pentru simbolurile necesare pentru afisarea sau listarea caracterelor. (Desigur, daca codificarea este gresita va cauta simbolurile pentru caracterele gresite.)

Un font in general acopera doar un singur set de caractere sau in cazul seturilor de caractere mari ca Unicode, doar un subset din toate caracterele existetente. Daca fontul nu are simbolul pentru un caracter, unele aplicatii vor cauta caracterul lipsa in alte font-uri aflate pe sistem (ceea ce inseamna ca acel simbol va arata diferit fata de restul text-ului, precum un bilet de rascumparare). Altfel in mod general va aparea un patrat, semnul intrebarii sau alt caracter in loc. De exemplu:

mojibake3.gif

Cu ce ma afecteaza acest lucru?

Ca autor sau programator trebuie sa alegi cea mai buna codificare pentru continutul afisat. Unicode este adesea o alegere buna, deoarece poti folosi o singura codificare pentru aproape orice caractere care sunt sanse sa apara. Acest lucru simplifica mult lucrurile. Folosind unicode ca setare de baza a sistemului elimina nevoia de a urmari si schimba intre diferite codificari ale caracterelor.

Autorii de continuturi trebuie sa verifice in ce codificare salveaza editorul sau script-urile folosite si cum se salveaza text-ul in codificarea dorita. Atentie, declararea unei codificari diferite nu va schimba octetii, trebuie sa salvati text-ul in acea codificare.

Autorii de continuturi trebuie sa afle cum sa se declara codificarea caracterelor folosita pentru formatul documentului la care lucreaza. E posibil sa aveti nevoie sa stiti cum se verifica daca serverul serveste documentele cu declaratiile HTTP potrivite .

Programatorii trebuie sa se asigure ca partile sistemului pot comunica unele cu altele, intelege ce codificari sunt folosite si ofera suport pentru toate codificarile si caracterele necesare.

Va recomandam cateva link-uri pentru aprofundarea cunostintelor:

Apropo

Articolul Codificarea caracterelor: Concepte Esentiale merita citit daca ai ajuns in acest punct deoarece acorda introduceri subtile la articole asemanatoare, cum ar fi Unicode, UTF-8, seturi de caractere, seturi de caractere codificate si codificari, setul de caracatere a documentului, character escapes si antetele HTTP.

Spune-ne părerea ta (în Engleză).

Abonează-te la RSS feed.

Resurse noi

Noutăţi prima pagină

Twitter (Noutăţi prima pagină)

‎@webi18n

Alte materiale

Autor: Richard Ishida, W3C. Traducator: Claudiu Apetrei, Sorin Velescu.

XHTML 1.0 Valid!
CSS Valid!
Incodat cu UTF-8!

Tradus din engleza: 2008-01-31. Ultima modificare a traducerii: 2011-06-06 10:30 GMT

Pentru a vedea toate schimbarile documentului, cauta qa-what-is-encoding pe blogul i18n.