Jump to content
Vesperala Forum

Despre literele româneşti


Aprig

Recommended Posts

Ca să nu mai vorbim limbi străine, noţinile de bază. N-am de gînd să le explic prea formal, doar suficient cît să ne facem o idee.

 

O să încep cu definiţii.

 

Alfabet - un snop de caractere cu care scriem. Alfabetul, în sens mai larg, include orice, inclusiv semnele de punctuaţie şi spaţiul.

Glifă - reprezentarea grafică a unui caracter.

Font - o colecţie de glife şi asocierea lor cu caracterele pe care le reprezintă. Asocierea asta poate fi făcută, intern, fie prin ordine, fie prin tabele.

Codare - relaţia dintre numere şi caractere. Se mai numeşte şi encoding, sau cod de pagină. Pentru că se ştie că calculatoarele sînt numerice.

 

Şi acum o luăm agale.

 

În calculator, numerele sînt reprezentate binar, şi grupate în bytes. Un byte (româneşte octet) are 8 biţi şi poate reprezenta orice număr întreg între 0 şi 255 (sau între -128 şi 127, dar asta nu contează aici).

 

Istoric, un caracter se reprezenta pe un byte, pentru că limba engleză nu are atît de multe caractere încît să nu încapă, şi mai ramînea şi loc. Encodingul de bază este cel numit ASCII, care este de fapt pe 7 biţi. Iar codurile importante sînt astea:

 

0 - nimic. Nu se foloseşte, pentru că în C se consideră sfîrşitul şirului de caractere, deci după el nu mai urmează nimic; ai băgat un 0 în text, ai şters tot ce urmează după el. Not nice.

48 - cifra 0.

65 - litera A.

97 - litera a.

 

De la 1 la 31 stau caracterele speciale, cum ar fi pagină nouă, sfîrşitul rîndului, astea, şi caracterele de control, ca sfîrştiul textului, pauză / reluare, treburi de-astea care ţin de istoria antică în care un terminal era suficient de lent încît să aiba nevoie să ceară o pauză pentru că n-a terminat de desenat. Mai e pe-acolo un clopoţel, un escape, şi alte bunătăţi. Iar la 32 stă spaţiul.

 

Bun. Pînă aici e simplu. Problema apare cînd se trece la alte limbi. Cum ASCII e pe 7 biţi iar un byte are 8, a mai ramas un bit care poate fi folosit pentru a extinde setul de caractere, aşa că în plaja 128-255 s-au îndesat alte caractere, pe măsură ce-au fost necesare. Cum ar fi caracterele franţuzeşti, germane, spaniole, astea.

 

Poblema a apărut după ce s-a umplut tot spatiul. Mai rămăseseră limbi neacoperite, caractere de adăugat. Aşa că s-au făcut seturi de caractere diferite, în care se păstrează setul ASCII nemodificat, iar în a doua jumătate (deci peste 128) se înlocuiesc caracterele alea cu altele. În total sînt 16 de-astea, dintre care pe noi ne interesează aşa:

 

ISO 8859-1, numit şi latin 1. E ăla original pentru Europa de Vest.

ISO 8859-2, numit şi latin 2. E cel extins, petru Europa centrală şi de est, care conţine şi caracterele româneşti. De menţionat că î şi â erau deja în latin 1, pentru că le foloseau francezii. În latin 2 stau pe aceeaşi poziţie ca şi în latin 1, şi de-aici apar unii care scriu cu î şi â dar fără ă, ş, ţ.

ISO 8859-15, numit şi latin 9. E practic latin 1 cu cîteva corecturi şi simbolul pentru euro.

ISO 8859-16, numit şi latin 10. Ultimul. Din punctul nostru de vedere e identic cu latin 2, dar are ş şi ţ înlocuite cu variantele cu virgulă în loc de sedilă, şi are simbolul pentru euro. Din punctul de vedre al altora nu e chiar aşa identic, dar asta e problema lor, nu a noastră.

 

Cu menţiunea că 8895-16, fiind ultimul apărut, nu este suportat de aproape niciun program din Windows. Ei s-au oprit la 15.

 

Deci problema devine clară. Caractere diferite sînt codificate cu acelaşi număr, în funcţie de encodingul folosit.

 

Data viitoare, cînd o să am timp, o să scriu şi despre rezolvarea problemei, pe nume Unicode, şi atunci o să pot să mă întorc la fonturi şi tabele.

Link to comment
Share on other sites

Majoritatea folosesc asta sau Windows CP 1250, care e cam acelaşi lucru. Asta dacă nu folosesc UTF-8.

 

Probabil n-am mentionat. Pe lîngă astea pe care le-am înşirat mai sus exista şi codurile de pagină din Windows. Mai sînt şi altele, grupate în general la categoria Vendor Specific Encodings. Corespunzător lui ISO 8859-2 este CP 1250, iar pentru 8859-1 este CP 1252. Din punct de vedere practic e acelaşi lucru, diferenţele sînt minore.

 

Există unele chiar mai vechi, de exemplu în DOS pentru România se putea folosi CP 850 iar implicit era CP 437. Astea sînt complet diferite, inclusiv ca ordine; din fericire nu se mai folosesc, aşa că avem o grijă mai puţin. Eu le-am enumerat doar pe cele mai importante care se mai folosesc şi acum, şi care ne privesc. În total sînt cîteva zeci, cred, dar nu mai interesează pe nimeni.

Link to comment
Share on other sites

Acum vorbiti despre asta??? Cand vineri era sa fac infarct la examenul de informatiica, manualul fiind scris cu glife necunoscute mie???

Ideea e ca voi explicati de 10.000 ori mai bine decat dom' profesor care a scris manualul. Continuati tot asa. Chiar ne sunt de folos informatiile de mai sus.

Cel putin mie, daaaaa!!!!!! :ping:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...