Codificare caractere

Orice număr (în anumite limite) într-o memorie de calculator numere codificate sistem binar. Pentru a face acest lucru, există reguli simple și clare de traducere. Cu toate acestea, până în prezent calculatorul este utilizat pe scară largă mult mai mult decât în ​​rolul calculelor laborioase artist. De exemplu, text și multimedia, informațiile stocate în memoria calculatorului. Prin urmare, se pune prima întrebare:







Ca simboluri (litere) sunt stocate în memoria calculatorului?

Fiecare literă aparține unui anumit alfabet, în care personajele se succed și, astfel, pot fi numerotate cu numere întregi consecutive. Fiecare literă poate fi asociată cu un număr întreg pozitiv, și numesc un cod de caracter. Este acest cod va fi stocat în memoria unui calculator și la o ieșire pe ecran sau pe hârtie „transformat“ în simbolul corespunzător. Pentru a distinge de reprezentarea numerelor care reprezintă caractere în memoria calculatorului, este necesar, de asemenea, pentru a stoca informații cu privire la care datele sunt codificate într-o anumită zonă de memorie.

Conformitatea cu anumite litere ale alfabetului cu numere, coduri care formează așa-numita lista de coduri. Cu alte cuvinte, fiecare simbol al alfabetului are propriul număr de cod specific în conformitate cu un tabel de codificare particulară.

Cu toate acestea, alfabete din lume sunt atât de multe (engleză, română, chineză, etc). Prin urmare, următoarea întrebare:

Cum de a codifica toate alfabetele utilizate în computer?

Pentru a răspunde la această întrebare, să trecem prin istoric.

În 60-e ai secolului XX, în American National Standards Institute (ANSI) tabelul de codificare a caracterelor a fost dezvoltat, care a fost ulterior utilizat în toate sistemele de operare. Acest tabel este denumit ASCII (American Standard Code pentru schimbul de informații - American Standard Code pentru schimbul de informații). Puțin mai târziu, a existat o versiune extinsă a ASCII.







În conformitate cu tabelul de codificare ASCII pentru reprezentarea unui simbol este alocat 1 octet (8 biți). Set de 8 celule pot lua 8 februarie = 256 valori diferite. Primele 128 de valori (de la 0 la 127) sunt constante și formează o parte așa-numita principală a tabelului, care includ cifre zecimale, litere ale alfabetului (majuscule și minuscule), semne de punctuație (perioadă, virgulă, paranteze, etc ..), precum și un spațiu și o varietate de caractere speciale (tab, newline și colab.). Valorile de la 128-255 formează o altă parte a mesei, în cazul în care se presupune a codifica caractere non-engleză.

Deoarece alfabete naționale set imens, ASCII-table extins, există mai multe variante. Chiar există mai multe liste de coduri (comune pentru Windows-1251 și KOI8-r) pentru limba română. Toate acestea creează dificultăți suplimentare. De exemplu, trimitem o scrisoare, scrisă într-o singură codificare, iar receptorul încearcă să-l citesc în altul. Rezultatul vede fără sens. Prin urmare, cititorul este necesar să se aplice textul unei alte liste de coduri.

Există o altă problemă. În unele limbi, alfabete prea multe caractere și nu se încadrează în pozițiile lor alocate de la 128 la 255 codificări un singur octet.

A treia problemă - ce să facă în cazul în care textul folosește mai mult de o limbă (de exemplu, română, engleză și franceză)? Nu puteți utiliza două tabele dintr-o dată ...

Pentru a rezolva aceste probleme, la un moment de codificare Unicode a fost dezvoltat.

standard de codare a caracterelor Unicode

Pentru a rezolva problemele de mai sus la începutul anilor 90 a fost dezvoltat de caractere standard de codare Unicode a primit numele. Acest standard vă permite să utilizați aproape orice limbă și simboluri în text.

Codificarea de caractere Unicode prevede 31 de biți (4 octeți minus un bit). Numărul de combinații posibile dă număr transmarginal: 31 = 2 2 147 483 684 (adică, mai mult de două miliarde). Prin urmare, alfabete Unicode descrie toate limbile cunoscute, chiar „mort“ și fictiv, inclusiv multe caractere speciale matematice și alte. Cu toate acestea, capacitatea de informare a 31-bit Unicode este încă prea mare. Prin urmare, versiunea mai frecvent utilizate scurtat de 16-biți (2 16 = 65536 valori), care codifică toate alfabetele moderne.

În Unicode, primele 128 de coduri coincid cu tabelul ASCII.