luni, 29 iunie 2009

Diacritice românești - de unde provine eroarea cu sedilele

ISTORIC

Există ceea ce se cheamă o Organizație Internațională pentru Standardizare - „International Organization for Standardization” sau, pe scurt, ISO. Gigeii ăștia standardizează cam tot ce se poate, și asta pe bună dreptate; altfel ar fi un haos absolut. Un comitet aparte al ISO se ocupă numai de standardizări și probleme din domeniul IT, și anume ISO/IEC JTC1.

Unul dintre standardele realizate de acest comitet a fost ISO/IEC 8859, care este de fapt un grup de standarde și care se referă la felul în care sînt codificate caracterele în secvențe de 8 biți (1 octet).

O codificare de caractere reprezintă, dacă vreți, un tabel de corespondențe între anumite simboluri și secvențe de cifre și/sau caractere și/sau alte simboluri. Un exemplu de codificare de caractere îl constituie codul Morse.

În mediul informatic, caracterele de orice fel, din orice alfabet, trebuie conținute într-o structură de date de 1 octet (byte) = 8 biți, care se reprezintă intern printr-o secvență de cifre fie în sistem decimal, fie în sistem hexazecimal (sau „hexa”, cum ne place nouă să îi zicem). Prin „sistem” înțelegem „sistem/bază de numerație”, pentru matematicienii riguroși.

Pe la începutul erei calculatoarelor, un astfel de lux nu a fost posibil și trebuia, indiferent dacă voiai sau nu, să te mulțumești cu sisteme de codificare a caracterelor pe 7 biți (ceea ce îi permitea calculatorului să cunoască numai un modest număr de 127 de caractere).

Cu timpul, au apărut aceste standarde pentru 8 biți (ceea ce asigura posibilitatea stocării a 255 de caractere) însă nici măcar așa nu se pot acoperi, într-un singur set, toate alfabetele și toate variațiile din interiorul fiecărui alfabet. Drept pentru care s-au creat standardele ISO din familia 8859 de care am amintit mai sus, reprezentînd seturi de codificări grupate pe zone lingvistice.

Inițial a apărut ISO/IEC 8859-2, considerat setul de caractere aplicabil mai multor limbi, printre care și româna. Acest set are caracterele „Ş” pe poziția 170 (U 015E), „ş” pe poziția 186 (U 015F), „Ţ” pe poziția 222 (U 0162) și „ţ” pe poziția 254 (U 0163) – adică diacriticele cu sedile. De unde pînă unde au considerat cei de la ISO/IEC că aceste caractere sînt OK pentru România e greu de spus. Nu cunosc astfel de detalii.

Cert este că, în timp, au sesizat că s-a comis o eroare și au remediat-o odată cu crearea standardului ISO/IEC 8859-16, care conține caracterele „Ș” pe poziția 170 (U 0218), „ș” pe 186 (U 0219), „Ț” pe 222 (U 021A) și „ț” pe 254 (U 021B).

UTF-8

Totuși, trebuie avut în vedere faptul că utilizarea exclusivă a unei asemenea codificări într-o pagină web sau într-un e-mail duce la probleme de compatibilitate – un text scris cu caractere care aparțin de cel puțin două zone lingvistice diferite (presupunînd așadar cel puțin două codificări de caractere din familia 8859) nu s-ar afișa corect în totalitate. Pentru evitarea acestor probleme, oarecum în paralel cu standardele din familia 8859 s-a dezvoltat Unicode, codificarea utilizată cel mai frecvent fiind UTF-8.

Pe scurt, avantajul lui UTF-8 este acela că un text codificat astfel poate conține orice caracter imaginabil, din orice limbă, transmiterea și afișarea informațiilor realizîndu-se corect. „Secretul” aici este faptul că aceasta este o codificare care nu mai este limitată la 8 biți (respectiv la 255 de caractere), realizîndu-se pe un număr variabil de biți.

În 2009, afișarea unei pagini web care este codificată UTF-8 sau scrierea și afișarea unor e-mail-uri care folosesc această codificare nu ar trebui să mai ridice vreo problemă. Sistemele de operare curente și actualizate conțin suport pentru UTF-8, eventualele probleme fiind cauzate de o configurație făcută necorespunzător de către utilizator.

§§§

Într-un articol ulterior voi vorbi despre suportul diacriticelor românești în sistemele de operare.

3 comentarii:

  1. Hello. I think I know who you might be. If you need to contact me, check out my Blogger profile. There's a contact e-mail under the display picture. Feel free to use it. :-)

    RăspundețiȘtergere

Comentariile nu sînt moderate momentan, însă toanele posesoarei blogului pot determina ca mesajele injurioase, vulgare sau oligofrene să fie suprimate.