Codificarea caracterelor

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

O codificare a caracterelor , sau set de caractere , constă dintr-un cod care asociază un set de caractere (de obicei reprezentări ale grafemelor așa cum apar într-un alfabet folosit pentru a comunica într-un limbaj natural ) la un set de alte obiecte, cum ar fi numerele (în special în informatică ) sau impulsuri electrice , cu scopul de a facilita stocarea unui text într-un computer sau transmiterea acestuia printr-o rețea de telecomunicații . Exemple obișnuite sunt codul Morse și codificarea ASCII .

În funcție de nivelul de abstractizare și context, punctele de cod corespunzătoare și spațiul de cod rezultat pot fi considerate modele de biți, octeți, numere naturale, impulsuri electrice etc. O codificare a caracterelor este utilizată în calcul, stocare date și transmisie de date text. „Set de caractere”, „hartă de caractere”, „set de coduri” și „pagină de cod” sunt termeni înrudiți, dar nu identici. [1]

Codurile de caractere timpurii asociate cu telegraful optic sau electric ar putea reprezenta doar un subset de caractere utilizate în limbile scrise, uneori limitate la majuscule, cifre și doar câteva semne de punctuație. Costul redus al reprezentării digitale a datelor în sistemele informatice moderne permite coduri de caractere mai elaborate (cum ar fi Unicode) care reprezintă majoritatea caracterelor utilizate în multe limbi scrise. Codificarea caracterelor folosind standarde acceptate la nivel internațional permite schimbul de text în format electronic la nivel mondial.

Istorie

Istoria codurilor de caractere ilustrează nevoia în evoluție de informații simbolice bazate pe caractere mediate de mașini la distanță, folosind mijloace electrice odată noi. Primele coduri s-au bazat pe sisteme de codificare și cifrare manuale și scrise de mână, precum cifrarea Bacon, Braille, steagurile semnalelor maritime internaționale și codificarea în 4 cifre a caracterelor chinezești ale codului telegrafic chinez (Hans Schjellerup, 1869). Odată cu adoptarea tehnicilor electrice și electromecanice, aceste prime coduri au fost adaptate noilor capacități și limitări ale primelor mașini. Primul cod de caractere transmise electric cunoscut, codul Morse, introdus în 1840, a folosit un sistem de patru „simboluri” (semnal scurt, semnal lung, spațiu scurt, spațiu lung) pentru a genera coduri de lungime variabilă. Deși cea mai mare parte a utilizării comerciale a codului Morse a fost folosită de mașini, a fost folosită și ca cod manual, care poate fi generat manual pe o cheie de telegraf și poate fi descifrat de ureche și persistă în utilizarea radio amatorilor. Majoritatea codurilor sunt de lungime fixă ​​pe caracter sau secvențe de lungime variabilă ale codurilor de lungime fixă ​​(cum ar fi Unicode). [2]

Introducerea teleimprimantelor duce la codul Baudot din 1930 , 5 biți . Codul Baudot, o codificare pe cinci biți, a fost creat de Émile Baudot în 1870, brevetat în 1874, modificat de Donald Murray în 1901 și standardizat de CCITT ca Alfabet Telegrafic Internațional nr. 2 (ITA2) în 1930. Numele „baudot” a fost aplicat greșit la ITA2 și numeroasele sale variante. ITA2 a suferit de multe defecte și a fost adesea „îmbunătățit” de mulți producători de echipamente, uneori creând probleme de compatibilitate. În 1959, armata SUA și-a definit codul Fieldata, un cod de șase sau șapte biți, introdus de Corpul de Semnal al Armatei SUA. În timp ce Fieldata s-a confruntat cu multe dintre problemele moderne de atunci (de exemplu, coduri de litere și cifre concepute pentru colaționarea mașinilor), Fieldata nu și-a atins obiectivele și a avut o durată scurtă. În 1963, primul cod ASCII (American Standard Code for Information Interchange) a fost lansat (X3.4-1963) de către comitetul ASCII (care conținea cel puțin un membru al comitetului Fieldata, WF Leubbert), care a abordat majoritatea deficiențelor Fieldata, folosind un cod mai simplu. Multe dintre modificări au fost subtile, cum ar fi seturile de caractere de colecție în anumite intervale de numere. ASCII63 a fost un succes, adoptat pe scară largă de către industrie și odată cu lansarea codului ASCII din 1967 (care a adăugat litere mici și a rezolvat unele probleme de „cod de control”) ASCII67 a fost adoptat destul de larg. Natura americană a ASCII67 a fost cumva tradusă în standardul european ECMA-6. [3]

Un pic izolat din punct de vedere istoric, Binary Coded Decimal (BCD) IBM a fost o schemă de codare pe șase biți utilizată de IBM încă din 1959 în computerele sale 1401 și 1620 și seria 7000 (de exemplu, 704, 7040, 709 și 7090), ca precum și în perifericele asociate. BCD a extins codarea numerică simplă existentă pe patru biți pentru a include caractere alfabetice și speciale, mapând-o cu ușurință la codificarea cartelei perforate care a fost deja utilizată pe scară largă. A fost precursorul EBCDIC. În cea mai mare parte, codurile IBM au fost utilizate în primul rând cu echipamentele IBM, care erau mai mult sau mai puțin un ecosistem închis și nu au văzut prea multe adoptări în afara „cercurilor” IBM. IBM Extended Binary Coded Decimal Interchange Code (de obicei prescurtat la EBCDIC) este o schemă de codare pe opt biți dezvoltată în 1963.

În 1963 s -a născut standardul ASCII pe 7 biți, care este utilizat pentru nașterea internetului și a protocoalelor conexe. În 1965 a fost aprobat ca US-ASCII , care în 1972 a devenit standardul ISO 646 .

Într-un efort de a dezvolta codificări de caractere universal interschimbabile, cercetătorii din anii 1980 s-au confruntat cu dilema că, pe de o parte, părea necesar să se adauge mai mulți biți pentru a găzdui caractere suplimentare, dar, pe de altă parte, pentru utilizatorii setului de caractere relativ mic al „Alfabetul latin (care constituia încă majoritatea utilizatorilor de computere), acei biți suplimentari erau o risipă colosală de resurse de calcul reduse și costisitoare (deoarece acestea ar fi întotdeauna reduse la zero pentru acești utilizatori). În 1985, hard disk-ul utilizatorului mediu putea stoca doar aproximativ 10 megaocteți, [4] așa că era foarte important la momentul respectiv să se conteze fiecare bit.

Soluția de compromis care a fost găsită și dezvoltată în cele din urmă în Unicode a fost de a rupe ipoteza (datând din codurile telegrafice) că fiecare caracter ar trebui să corespundă întotdeauna direct unei anumite secvențe de biți. În schimb, caracterele ar fi mai întâi mapate la o reprezentare intermediară universală sub formă de numere abstracte numite puncte de cod. Punctele de cod ar fi apoi reprezentate într-o varietate de moduri și cu diferite numere predefinite de biți pe caracter (unități de cod), în funcție de context. Pentru a codifica puncte de cod mai mari decât lungimea unității de cod, cum ar fi mai sus de 256 pentru unitățile de 8 biți, soluția a fost de a implementa codificări cu lățime variabilă în care o secvență de evacuare ar semnaliza că biții următori ar trebui analizați ca un punct de cod mai mare.

În 1981, extensiile la codul ASCII pentru caractere de la 128 la 255 sunt identificate prin paginile de cod PC-DOS și apoi traduse în MS-DOS pentru compatibilitate inversă. În 1985 , ISO a aprobat standardele de pagină cod ca ISO 8859 - n , unde n este un număr care identifică pagina de cod particulară.

Apariția Windows , tot în Asia , duce la extinderi la limbile orientale în anii 1990 ale paginilor de cod Windows.

Babelul de înțeles rezultat din schimbul de e-mailuri și documente între țări cu pagini de cod diferite a făcut obiectul atenției ISO mai întâi cu standardul ISO 2022 din 1986, în vigoare, dar abia folosit, și apoi cu propunerea din 1991 a Unicode 1.0, a cărei versiune 1.1 din 1993 a devenit standardul ISO 10646 , Universal Character Set sau UCS .

UCS-2 , care folosește doi octeți pentru fiecare caracter, a fost folosit de Microsoft în Windows NT din 1995 și apoi extins la toate celelalte versiuni.

Definițiile formatelor UTF-8 și UTF-16 datează din 1996 , cu versiunea 2.0 a Unicode . UTF ( Unicode Transformation Format ) a devenit de facto standardul POSIX și fiind ratificat de RFC 3629 , este recunoscut și de W3C . Există, de asemenea, UTF-7 și UCS 4. UTF-16 este o extensie a UCS 2.

Versiunea ulterioară Unicode 3.0 din 1999 introduce bidirecționalitate și compoziția tabelelor, în timp ce versiunea 4.0 din 2001 include și limbi străvechi. 4.1 este din 2005 , dar activitatea Consorțiului Unicode este în continuă evoluție.

Repertorii de caractere

În unele contexte, în special în stocare și comunicare, este util să se facă distincția între repertoriul de caractere (un set complet de caractere abstracte susținute de un anumit sistem) și codificarea caracterelor , care specifică sistemul care trebuie utilizat pentru reprezentarea caracterelor unui anumite seturi folosind coduri numerice.

După primele repertorii de caractere ( ASCII în 1963 și EBCDIC în 1964 ) am asistat la un proces de standardizare . Limitările acestor modele de reprezentare au devenit curând evidente și s-au încercat să se dezvolte metode specifice pentru a le depăși. În special, necesitatea de a susține un număr tot mai mare de caractere (așa cum este cerut de exemplu de codificările CJK tipice din Orientul Îndepărtat ) a evidențiat necesitatea unei abordări sistematice a problemei. O încercare în acest sens este reprezentată de codificarea Unicode , al cărei repertoriu include mai mult de o sută de mii de caractere.

Codificările personajelor principale

Notă

  1. ^ Definirea codificării caracterelor , la techterms.com . Adus la 5 decembrie 2020 .
  2. ^ Tabelele cu coduri de caractere antice pentru computer - și de ce sunt încă relevante , pe SmartBear.com . Adus la 5 decembrie 2020 .
  3. ^ World Power Systems: Texte: Istoria adnotată a codurilor de caractere , la www.sr-ix.com . Adus la 5 decembrie 2020 .
  4. ^ (EN) InfoWorld Media Group Inc, InfoWorld , InfoWorld Media Group, Inc., 15 aprilie 1985. Adus pe 5 decembrie 2020.

Elemente conexe

Alte proiecte

linkuri externe