Tabel de caractere rusești Ascii 1251. Codificare ASCII (cod standard american pentru schimbul de informații) - codificare de bază a textului pentru alfabetul latin

După cum știți, un computer stochează informații în formă binară, reprezentând-o ca o secvență de unu și zero. Pentru a traduce informațiile într-o formă convenabilă pentru percepția umană, fiecare secvență unică de numere este înlocuită cu simbolul său corespunzător atunci când este afișată.

Unul dintre sistemele de corelare a codurilor binare cu caracterele tipărite și de control este

La nivelul actual de dezvoltare a tehnologiei informatice, utilizatorului nu i se cere să cunoască codul fiecărui caracter specific. Cu toate acestea, o înțelegere generală a modului în care se realizează codificarea este extrem de utilă, iar pentru unele categorii de specialiști, chiar necesară.

Crearea ASCII

Codificarea a fost dezvoltată inițial în 1963 și apoi actualizată de două ori pe parcursul a 25 de ani.

În versiunea originală, tabelul de caractere ASCII includea 128 de caractere mai târziu a apărut o versiune extinsă, în care au fost salvate primele 128 de caractere, iar caracterele lipsă anterior au fost atribuite codurilor cu al optulea bit implicat.

Timp de mulți ani, această codificare a fost cea mai populară din lume. În 2006, Latin 1252 a ocupat poziția de lider, iar de la sfârșitul lui 2007 până în prezent, Unicode a deținut ferm poziția de lider.

Reprezentarea computerizată a ASCII

Fiecare caracter ASCII are propriul cod, format din 8 caractere reprezentând un zero sau unul. Numărul minim din această reprezentare este zero (opt zerouri în sistemul binar), care este codul primului element din tabel.

Două coduri din tabel au fost rezervate pentru comutarea între standardul US-ASCII și varianta sa națională.

După ce ASCII a început să includă nu 128, ci 256 de caractere, s-a răspândit o variantă de codificare, în care versiunea originală a tabelului a fost stocată în primele 128 de coduri cu al 8-lea bit zero. Caracterele scrise naționale au fost stocate în jumătatea superioară a tabelului (pozițiile 128-255).

Utilizatorul nu trebuie să cunoască direct codurile de caractere ASCII. De obicei, un dezvoltator de software trebuie să cunoască numărul elementului din tabel pentru a-și calcula codul folosind sistemul binar, dacă este necesar.

Limba rusă

După dezvoltarea codificărilor pentru limbile scandinave, chineză, coreeană, greacă etc. la începutul anilor '70, Uniunea Sovietică a început să creeze propria versiune. Curând, a fost dezvoltată o versiune a unei codificări pe 8 biți numită KOI8, păstrând primele 128 de coduri de caractere ASCII și alocând același număr de poziții pentru literele alfabetului național și caractere suplimentare.

Înainte de introducerea Unicode, KOI8 domina segmentul rus al internetului. Au existat opțiuni de codare atât pentru alfabetul rus, cât și pentru cel ucrainean.

Probleme ASCII

Deoarece numărul de elemente chiar și în tabelul extins nu a depășit 256, nu a existat nicio posibilitate de a găzdui mai multe scripturi diferite într-o singură codificare. În anii 90, problema „crocozyabr” a apărut pe Runet, când textele tastate cu caractere ASCII rusești erau afișate incorect.

Problema a fost că diferitele coduri ASCII nu se potriveau între ele. Să ne amintim că diferite caractere ar putea fi localizate în pozițiile 128-255, iar la schimbarea unei codări chirilice cu alta, toate literele textului au fost înlocuite cu altele având un număr identic într-o versiune diferită a codificării.

Starea curenta

Odată cu apariția Unicode, popularitatea ASCII a început să scadă brusc.

Motivul pentru aceasta constă în faptul că noua codificare a făcut posibilă găzduirea caracterelor din aproape toate limbile scrise. În acest caz, primele 128 de caractere ASCII corespund acelorași caractere în Unicode.

În 2000, ASCII era cea mai populară codare de pe Internet și era folosită pe 60% din paginile web indexate de Google. Până în 2012, ponderea acestor pagini a scăzut la 17%, iar Unicode (UTF-8) a luat locul celei mai populare codări.

Astfel, ASCII este o parte importantă a istoriei tehnologiei informației, dar utilizarea sa în viitor pare nepromițătoare.

[Codări pe 8 biți: ASCII, KOI-8R și CP1251] Primele tabele de codificare create în Statele Unite nu au folosit al optulea bit dintr-un octet. Textul a fost reprezentat ca o secvență de octeți, dar al optulea bit nu a fost luat în considerare (a fost folosit în scopuri oficiale).

Tabelul a devenit un standard general acceptat ASCII(Codul American Standard pentru Schimbul de Informații). Primele 32 de caractere ale tabelului ASCII (de la 00 la 1F) au fost folosite pentru caracterele care nu se imprimă. Au fost concepute pentru a controla un dispozitiv de imprimare etc. Restul - de la 20 la 7F - sunt caractere obișnuite (printabile).

Tabelul 1 - Codificare ASCII

DecHexoctCharDescriere
0 0 000 nul
1 1 001 începutul direcției
2 2 002 începutul textului
3 3 003 sfârşitul textului
4 4 004 sfârşitul transmisiei
5 5 005 Anchetă
6 6 006 recunoaște
7 7 007 clopot
8 8 010 backspace
9 9 011 filă orizontală
10 A 012 linie nouă
11 B 013 filă verticală
12 C 014 pagina noua
13 D 015 retur transport
14 E 016 schimbă afară
15 F 017 schimbă în
16 10 020 evadare legaturii de date
17 11 021 controlul dispozitivului 1
18 12 022 controlul dispozitivului 2
19 13 023 controlul dispozitivului 3
20 14 024 controlul dispozitivului 4
21 15 025 recunoaștere negativă
22 16 026 inactiv sincron
23 17 027 sfârşitul trans. bloc
24 18 030 Anulare
25 19 031 sfârşitul mediei
26 1A 032 substitui
27 1B 033 evadare
28 1C 034 separator de fișiere
29 1D 035 separator de grup
30 1E 036 separator de înregistrări
31 1F 037 separator de unitate
32 20 040 spaţiu
33 21 041 !
34 22 042 "
35 23 043 #
36 24 044 $
37 25 045 %
38 26 046 &
39 27 047 "
40 28 050 (
41 29 051 )
42 2A 052 *
43 2B 053 +
44 2C 054 ,
45 2D 055 -
46 2E 056 .
47 2F 057 /
48 30 060 0
49 31 061 1
50 32 062 2
51 33 063 3
52 34 064 4
53 35 065 5
54 36 066 6
55 37 067 7
56 38 070 8
57 39 071 9
58 3A 072 :
59 3B 073 ;
60 3C 074 <
61 3D 075 =
62 3E 076 >
63 3F 077 ?
DecHexoctChar
64 40 100 @
65 41 101 A
66 42 102 B
67 43 103 C
68 44 104 D
69 45 105 E
70 46 106 F
71 47 107 G
72 48 110 H
73 49 111 eu
74 4A 112 J
75 4B 113 K
76 4C 114 L
77 4D 115 M
78 4E 116 N
79 4F 117 O
80 50 120 P
81 51 121 Q
82 52 122 R
83 53 123 S
84 54 124 T
85 55 125 U
86 56 126 V
87 57 127 W
88 58 130 X
89 59 131 Y
90 5A 132 Z
91 5B 133 [
92 5C 134 \
93 5D 135 ]
94 5E 136 ^
95 5F 137 _
96 60 140 `
97 61 141 A
98 62 142 b
99 63 143 c
100 64 144 d
101 65 145 e
102 66 146 f
103 67 147 g
104 68 150 h
105 69 151 i
106 6A 152 j
107 6B 153 k
108 6C 154 l
109 6D 155 m
110 6E 156 n
111 6F 157 o
112 70 160 p
113 71 161 q
114 72 162 r
115 73 163 s
116 74 164 t
117 75 165 u
118 76 166 v
119 77 167 w
120 78 170 X
121 79 171 y
122 7A 172 z
123 7B 173 {
124 7C 174 |
125 7D 175 }
126 7E 176 ~
127 7F 177 DEL

După cum puteți vedea cu ușurință, această codificare conține doar litere latine și cele care sunt folosite în limba engleză. Există, de asemenea, aritmetice și alte simboluri de serviciu. Dar nu există nici litere rusești, nici măcar latine speciale pentru germană sau franceză. Acest lucru este ușor de explicat - codificarea a fost dezvoltată special ca standard american. Pe măsură ce computerele au început să fie folosite în întreaga lume, alte caractere au trebuit să fie codificate.

Pentru a face acest lucru, s-a decis să se folosească al optulea bit din fiecare octet. Acest lucru a făcut să fie disponibile încă 128 de valori (de la 80 la FF) care ar putea fi folosite pentru a codifica caractere. Primul dintre tabelele de opt biți este „ASCII extins” ( ASCII extins) - a inclus diverse variante de caractere latine utilizate în unele limbi ale Europei de Vest. Conținea și alte simboluri suplimentare, inclusiv pseudografice.

Caracterele pseudografice vă permit să oferiți o imagine de grafică afișând doar caractere text pe ecran. De exemplu, programul de gestionare a fișierelor FAR Manager funcționează folosind pseudografice.

Nu existau litere rusești în tabelul ASCII extins. Rusia (fosta URSS) și alte țări și-au creat propriile codificări care au făcut posibilă reprezentarea unor caractere „naționale” specifice în fișiere text pe 8 biți - litere latine ale limbilor poloneză și cehă, chirilice (inclusiv litere rusești) și alte alfabete.

În toate codificările care au devenit răspândite, primele 127 de caractere (adică valoarea octetului cu al optulea bit egal cu 0) sunt aceleași cu ASCII. Deci, un fișier ASCII funcționează în oricare dintre aceste codificări; Literele limbii engleze sunt reprezentate în același mod.

Organizare ISO(International Standardization Organization) a adoptat un grup de standarde ISO 8859. Acesta definește codificări pe 8 biți pentru diferite grupuri de limbi. Deci, ISO 8859-1 este un tabel ASCII extins pentru SUA și Europa de Vest. Și ISO 8859-5 este un tabel pentru alfabetul chirilic (inclusiv rus).

Cu toate acestea, din motive istorice, codarea ISO 8859-5 nu a prins rădăcini. În realitate, pentru limba rusă sunt folosite următoarele codificări:

Pagina de cod 866 ( CP866), alias „DOS”, alias „codare GOST alternativă”. Folosit pe scară largă până la mijlocul anilor 90; folosit acum într-o măsură limitată. Practic nu este folosit pentru distribuirea de texte pe Internet.
- KOI-8. Dezvoltat în anii 70-80. Este un standard general acceptat pentru transmiterea mesajelor de e-mail pe internetul rusesc. De asemenea, este utilizat pe scară largă în sistemele de operare din familia Unix, inclusiv Linux. Se numește versiunea KOI-8, concepută pentru rusă KOI-8R; Există versiuni pentru alte limbi chirilice (de exemplu, KOI8-U este o versiune pentru limba ucraineană).
- Pagina de cod 1251, CP1251,Windows-1251. Dezvoltat de Microsoft pentru a sprijini limba rusă în Windows.

Principalul avantaj al CP866 a fost păstrarea caracterelor pseudo-grafice în aceleași locuri ca în ASCII extins; prin urmare, programele cu text străin, de exemplu, celebrul Norton Commander, ar putea funcționa fără modificări. CP866 este acum utilizat pentru programele Windows care rulează în ferestre text sau în modul text pe ecran complet, inclusiv FAR Manager.

Textele din CP866 au fost destul de rare în ultimii ani (dar este folosit pentru a codifica numele fișierelor rusești în Windows). Prin urmare, ne vom opri mai detaliat asupra altor două codificări - KOI-8R și CP1251.



După cum puteți vedea, în tabelul de codificare CP1251, literele rusești sunt aranjate în ordine alfabetică (cu excepția, însă, a literei E). Acest aranjament facilitează sortarea alfabetică a programelor de calculator.

Dar în KOI-8R ordinea literelor rusești pare aleatorie. Dar de fapt nu este.

În multe programe mai vechi, al 8-lea bit a fost pierdut la procesarea sau transmiterea textului. (Acum, astfel de programe sunt practic „disparute”, dar la sfârșitul anilor 80 - începutul anilor 90 erau răspândite). Pentru a obține o valoare de 7 biți dintr-o valoare de 8 biți, doar scădeți 8 din cifra cea mai semnificativă; de exemplu, E1 devine 61.

Acum comparați KOI-8R cu tabelul ASCII (Tabelul 1). Veți descoperi că literele rusești sunt plasate în corespondență clară cu cele latine. Dacă al optulea bit dispare, literele rusești mici se transformă în litere latine mari, iar literele rusești mari se transformă în litere latine. Deci, E1 în KOI-8 este „A” rusesc, în timp ce 61 în ASCII este „a” latin.

Deci, KOI-8 vă permite să mențineți lizibilitatea textului rusesc atunci când al 8-lea bit este pierdut. „Salut tuturor” devine „pRIWET WSEM”.

Recent, atât ordinea alfabetică a caracterelor din tabelul de codificare, cât și lizibilitatea cu pierderea celui de-al 8-lea bit și-au pierdut importanța decisivă. Al optulea bit în computerele moderne nu se pierde în timpul transmisiei sau procesării. Iar sortarea alfabetică se face ținând cont de codificare, și nu prin simpla comparare a codurilor. (Apropo, codurile CP1251 nu sunt complet aranjate alfabetic - litera E nu este la locul ei).

Datorită faptului că există două codificări comune, atunci când lucrați cu Internetul (e-mail, navigarea pe site-uri web), uneori puteți vedea un set de litere fără sens în loc de text rusesc. De exemplu, „EU SUNT SBYUFEMHEL”. Acestea sunt doar cuvintele „cu respect”; dar au fost codificate în codificare CP1251, iar computerul a decodat textul folosind tabelul KOI-8. Dacă aceleași cuvinte ar fi, dimpotrivă, codificate în KOI-8, iar computerul ar decoda textul conform tabelului CP1251, rezultatul ar fi „U KHBTSEOYEN”.

Uneori se întâmplă ca un computer să descifreze literele în limba rusă folosind un tabel care nu este destinat limbii ruse. Apoi, în locul literelor rusești, apare un set de simboluri fără sens (de exemplu, litere latine ale limbilor est-europene); ele sunt adesea numite „crocozybras”.

În cele mai multe cazuri, programele moderne se ocupă de determinarea în mod independent a codificărilor documentelor de pe Internet (e-mailuri și pagini web). Dar uneori „raușesc”, apoi puteți vedea secvențe ciudate de litere rusești sau „krokozyabry”. De regulă, într-o astfel de situație, pentru a afișa text real pe ecran, este suficient să selectați codarea manual în meniul programului.

Pentru acest articol au fost folosite informații de pe pagina http://open-office.edusite.ru/TextProcessor/p5aa1.html.

Material preluat de pe site:

Un computer înțelege procesul de conversie a acestuia într-o formă care permite transmiterea, stocarea sau procesarea automată mai convenabilă a acestor date. În acest scop sunt folosite diverse tabele. ASCII a fost primul sistem dezvoltat în Statele Unite pentru a lucra cu text în limba engleză, care a devenit ulterior răspândit în întreaga lume. Articolul de mai jos este dedicat descrierii, caracteristicilor, proprietăților și utilizării ulterioare.

Afișarea și stocarea informațiilor într-un computer

Simbolurile de pe un monitor de computer sau de unul sau altul gadget digital mobil sunt formate pe baza unor seturi de forme vectoriale de diferite caractere și a unui cod care vă permite să găsiți printre ele simbolul care trebuie introdus la locul potrivit. Reprezintă o secvență de biți. Astfel, fiecare caracter trebuie să corespundă în mod unic unui set de zerouri și unu, care apar într-o anumită ordine unică.

Cum a început totul

Din punct de vedere istoric, primele computere erau de limba engleză. Pentru a codifica informațiile simbolice în ele, a fost suficient să folosiți doar 7 biți de memorie, în timp ce 1 octet format din 8 biți a fost alocat în acest scop. Numărul de caractere înțeles de computer în acest caz a fost de 128. Aceste caractere includ alfabetul englez cu semnele de punctuație, numerele și unele caractere speciale. Codificarea pe șapte biți în limba engleză cu tabelul corespunzătoare (pagina de cod), dezvoltată în 1963, a fost numită Codul standard american pentru schimbul de informații. De obicei, abrevierea „codificare ASCII” a fost și este încă folosită pentru a o desemna.

Trecerea la multilingvism

De-a lungul timpului, computerele au devenit utilizate pe scară largă în țările care nu vorbesc engleza. În acest sens, a fost nevoie de codificări care să permită utilizarea limbilor naționale. S-a decis să nu se reinventeze roata și să se ia ca bază ASCII. Tabelul de codificare din noua ediție s-a extins semnificativ. Utilizarea celui de-al 8-lea bit a făcut posibilă traducerea a 256 de caractere într-un limbaj de calculator.

Descriere

Codificarea ASCII are un tabel care este împărțit în 2 părți. Doar prima jumătate a acestuia este considerată a fi un standard internațional general acceptat. Include:

  • Caractere cu numere de serie de la 0 la 31, codificate în secvențe de la 00000000 la 00011111. Sunt rezervate caracterelor de control care controlează procesul de afișare a textului pe ecran sau imprimantă, emiterea unui semnal sonor etc.
  • Caracterele cu NN în tabel de la 32 la 127, codificate prin secvențe de la 00100000 la 01111111 formează partea standard a tabelului. Acestea includ spațiu (N 32), litere ale alfabetului latin (minuscule și majuscule), numere din zece cifre de la 0 la 9, semne de punctuație, paranteze de diferite stiluri și alte simboluri.
  • Caractere cu numere de serie de la 128 la 255, codificate prin secvențe de la 10000000 la 11111111. Acestea includ litere ale alfabetului național, altele decât cele latine. Această parte alternativă a tabelului ASCII este folosită pentru a converti caracterele rusești în formă de computer.

Unele proprietăți

Caracteristicile codificării ASCII includ diferența dintre literele „A” - „Z” ale literelor mici și mari de doar un bit. Această circumstanță simplifică foarte mult conversia registrului, precum și verificarea dacă aceasta aparține unui anumit interval de valori. În plus, toate literele din sistemul de codificare ASCII sunt reprezentate de propriile numere de succesiune în alfabet, care sunt scrise cu 5 cifre în sistemul de numere binar, precedate de 011 2 pentru literele mici și 010 2 pentru literele mari.

Una dintre caracteristicile codificării ASCII este reprezentarea a 10 cifre - „0” - „9”. În al doilea sistem numeric ele încep cu 00112 și se termină cu 2 valori numerice. Astfel, 0101 2 este echivalent cu numărul zecimal cinci, astfel încât caracterul „5” este scris ca 0011 01012. Pe baza celor de mai sus, puteți converti cu ușurință numerele BCD într-un șir ASCII adăugând secvența de biți 00112 la fiecare ciugulit de pe stânga.

„Unicode”

După cum știți, sunt necesare mii de caractere pentru a afișa texte în limbile grupului din Asia de Sud-Est. Un astfel de număr dintre ele nu poate fi descris în niciun fel într-un octet de informații, astfel încât nici măcar versiunile extinse de ASCII nu ar mai putea satisface nevoile crescute ale utilizatorilor din diferite țări.

Astfel, a apărut necesitatea creării unei codări universale a textului, a cărei dezvoltare, în colaborare cu mulți lideri ai industriei IT globale, a fost întreprinsă de consorțiul Unicode. Specialiștii săi au creat sistemul UTF 32 în acesta, 32 de biți au fost alocați pentru a codifica 1 caracter, constituind 4 octeți de informații. Principalul dezavantaj a fost o creștere bruscă a cantității de memorie necesară de până la 4 ori, ceea ce a implicat multe probleme.

În același timp, pentru majoritatea țărilor cu limbi oficiale aparținând grupului indo-european, numărul de caractere egal cu 232 este mai mult decât excesiv.

Ca urmare a lucrărilor ulterioare ale specialiștilor din consorțiul Unicode, a apărut codificarea UTF-16. A devenit opțiunea de conversie a informațiilor simbolice care se potrivea tuturor atât în ​​ceea ce privește cantitatea de memorie necesară, cât și numărul de caractere codificate. De aceea, UTF-16 a fost adoptat implicit și necesită rezervarea a 2 octeți pentru un caracter.

Chiar și această versiune de Unicode destul de avansată și de succes a avut unele dezavantaje, iar după trecerea de la versiunea extinsă a ASCII la UTF-16, greutatea documentului s-a dublat.

În acest sens, s-a decis să se utilizeze codificarea cu lungime variabilă UTF-8. În acest caz, fiecare caracter al textului sursă este codificat ca o secvență de lungime de la 1 la 6 octeți.

Contactați codul standard american pentru schimbul de informații

Toate caracterele latine cu lungime variabilă UTF-8 sunt codificate în 1 octet, ca în sistemul de codificare ASCII.

O caracteristică specială a YTF-8 este că, în cazul textului în latină fără a utiliza alte caractere, chiar și programele care nu înțeleg Unicode vor putea în continuare să-l citească. Cu alte cuvinte, codarea de bază a textului ASCII devine pur și simplu parte a noului UTF cu lungime variabilă. Caracterele chirilice din YTF-8 ocupă 2 octeți și, de exemplu, caracterele georgiane - 3 octeți. Prin crearea UTF-16 și 8, principala problemă a creării unui singur spațiu de cod în fonturi a fost rezolvată. De atunci, producătorii de fonturi pot completa tabelul doar cu forme vectoriale de caractere text în funcție de nevoile lor.

Sistemele de operare diferite preferă codificări diferite. Pentru a putea citi și edita textele tastate într-o altă codificare, se folosesc programe de conversie a textului rusesc. Unele editoare de text conțin transcoduri încorporate și vă permit să citiți text indiferent de codificare.

Acum știți câte caractere sunt în codificarea ASCII și cum și de ce a fost dezvoltată. Desigur, astăzi standardul Unicode este cel mai răspândit în lume. Totuși, nu trebuie să uităm că se bazează pe ASCII, așa că trebuie apreciată contribuția dezvoltatorilor săi în domeniul IT.

  • Serghei Savenkov

    un fel de recenzie „scurtă”... de parcă ne-am grăbi pe undeva