Nozdr - despre codificarea caracterelor

defini

Să începem cu definirea conceptelor. Computerele moderne stochează toate informațiile sub formă de byte binare, adică unități pe 8 biți, capabile să ia o valoare de la 0 la 255. Pentru a stoca în memoria calculatorului nu informații numerice ci textuale, trebuie să determinăm cu ce octet sau octeți Fiecare caracter care poate fi codificat în textul nostru va fi codificat. Această corespondență între caractere și octeții care le codifică se numește set de caractere. Este ușor de înțeles, în primul rând, că fiecare codificare este proiectat pentru un limbaj specific uman (mai precis, pentru un anumit scenariu), și, pe de altă parte, că orice astfel de codificările pentru limbă se poate gândi la o multime. Cunoscând natura umană, nu este greu de ghicit că vor fi inventate mult mai mult decât este necesar. Desigur, asta e ceea ce sa întâmplat: cel mai avansat la funcția de conversie dată de bibliotecă ATI (International Components pentru Unicode), IBM suportă mai mult de 170 de codificări diferite.

Codecuri ale alfabetului latin

Să analizăm în detaliu codificările scenariilor cu care dezvoltatorul rus se ciocnește cel mai adesea, adică latină și chirilică. Pentru alfabetul latin se folosesc astăzi două codificări principale: ASCII și EBCDIC. ASCII (codul standard american pentru schimbul de informații) este un tabel de cod pe șapte biti (coduri de 00 - 7F sau 0 - 127 zecimale), care a devenit standard pentru computerele mici și mijlocii și, prin urmare, standardul pentru Web. În acesta, octeții cu coduri hexazecimale 00 - 1F și 7F sunt utilizați pentru a codifica caracterele de control (nu sunt afișate), iar ceilalți codifică următoarele simboluri:

Codificarea EBCDIC (Cod extins codificat zecimal codificat) este o codificare pe 8 biți (coduri de caractere 00 la FF sau 0 la 255 zecimale) acceptate pe toate calculatoarele IBM, cu excepția PC-ului. Nu am putut să menționăm acest lucru, dar pe măsură ce XML se dezvoltă ca formatul principal pentru transportul datelor pe Web, suntem tot mai confruntați cu fișiere XML generate pe mașini mari. Aici octeți cu coduri 00 - 3F codifică caracterele de control, iar restul se utilizează astfel:

Codificări chirilice

Codificările scripturilor alfabetice "non-latine" sunt aranjate după cum urmează. Ele sunt codificate de masă de opt biți (1 octet = 1 simbol), adică numerele 00 - .. FF (0-255 zecimal), astfel încât jumătatea inferioară a listei de coduri (coduri de 00 - 7F sau 0-127 zecimale) este ASCII. și jumătatea superioară (cod 80 - FF sau 128-255 zecimale) cuprinde un set de caractere național, adică, scrisori rusești în lista de coduri ruse din Turcia în limba turcă, etc. O astfel de organizare tabele de coduri naționale permite să afișeze și să proceseze literele în mod corespunzător, .... numerele și semnele de punctuație pe orice computer, indiferent de setările sistemului. Asta-i drept, în special, aranjate și seturi de caractere rusești, astfel încât să putem lua în considerare în continuare doar jumătate lor mai mare.

Istoria codificărilor rusești este un exemplu de confuzie, rară chiar și pentru realitatea noastră de calculator. Organizațiile sovietice de standardizare au acceptat GOST-urile, producătorii de calculatoare (Apple) și sistemele de operare (Microsoft), au ignorat amiabil și au introdus propriile codificări. Ca rezultat, am primit o moștenire de patru GOST-uri diferite, două codificări de la Microsoft (pentru DOS și Windows) și o codificare de la Apple pentru Mac # (toate, firește, incompatibile unul cu celălalt). Cei interesați de detalii se pot referi la pagina Subscarinei Chiarice Charset.

Din fericire, astăzi nu este nevoie să descriem în detaliu toate aceste codificări, deoarece doar doi dintre ei au supraviețuit în Runet. Primul este KOI8-R (KOI reprezintă codul de schimb și procesare a informațiilor, P distinge tabelul de coduri rusești de la limba ucraineană, KOI8-U). KOI8-R a fost înregistrat de Andrei Chernov de la Relcom ca RFC 1489 și arată ca:

KOI8-P este de facto standard pentru toate serviciile de Internet, cu excepția WWW. În special, toate e-mailurile și serviciile de știri Runet lucrează în această codificare. În ceea ce privește Web-ul, situația de aici este mult mai complicată. Problema este că mai mult de 90% din computerele client ale rețelei funcționează sub Windows cu diferite versiuni. Windows utilizează propriile coduri de litere rusești, care se numește, de obicei, prin numărul paginii codului Windows-1251 sau CP1251:

Codificări în două octeți

Nu trebuie să ne gândim că toate codificările naționale sunt octeți, adică urmează regulă: 1 caracter = 1 octet. De fapt, acest lucru este valabil doar pentru sistemele de scriere alfabetice (alfanumerice). Pe de altă parte, există sisteme syllabice de scriere, în care fiecare simbol nu reprezintă un sunet, ci o silabă, de exemplu, alfabetele syllabice din India și din Orientul Îndepărtat. Deoarece șilabile din limba sunt mult mai mari decât sunetele individuale, vechii 128 octeți din tabelul de coduri pur și simplu nu sunt suficienți pentru a le reprezenta. Acest lucru conduce la faptul că astfel de scripturi utilizează codificări în două octeți (DBCS, Double Byte Character Sets). Un exemplu tipic al acestei codificări este codificarea JIS japoneză, care există în mai multe variante. Acesta acoperă literele și numerele latine, atât alfabetul syllabic japonez (katakana și hiragana), cât și cele mai importante caractere chinezești. Reprezentarea completă a scrisului hieroglific al Chinei, Japoniei și Coreei, care numără câteva mii de hieroglife, rămâne însă imposibilă în cadrul codurilor naționale.

Dezavantaje ale codurilor naționale

Avantajul fără îndoială al tabelelor tradiționale de coduri este extrem de rapidă în prezentarea informațiilor textuale. Cu toate acestea, această scurtă durată implică mai multe deficiențe, legate în mod organic de aceasta:

Din același motiv, este aproape imposibil să combinați mai multe tabele de coduri într-un singur document. Aceasta duce la "sărăcirea tipografică" a documentelor text, deoarece un număr mare de simboluri utile care nu sunt incluse în această codificare națională sunt aruncate peste bord.

Tabelele de coduri, orientate spre sisteme de scriere alfabetică, nu au putut rezolva problema codării caracterelor din Orientul Îndepărtat și a alfabetului syllabic indian. Apropo, aceasta înseamnă că aproape jumătate din populația lumii este lipsită de oportunitatea de a lucra cu un computer în limba maternă.

De îndată ce computerele au devenit mai puternice, Internetul - ramificat, și sisteme de operare - ușor de utilizat, aceste deficiențe au un obstacol serios din ce în ce la crearea de interfețe naturale „om-computer“ și „rețea de calculatoare“. Modul de ieșire din situație a fost realizat prin crearea standardului Unicode, care va fi discutat pe pagina următoare.

Poate că a fost. Într-o zi. Înainte. Sau altfel numai în planuri. Dar acum nu este.

Probabil că sa mutat. De exemplu, "Biblioteca" este acum aici → Biblioteca.

Dacă nu ați găsit-o, încercați să căutați pe paginile Catalogului site-urilor. Harta site-ului sau în dreapta sus a căutării.