Codurile de caractere din tabelul de coduri ASCII sunt cunoscute. Codificare ASCII (cod standard american pentru schimbul de informații) - codificare de bază a textului pentru alfabetul latin
Suprapunere de caractere
Caracterul BS (backspace) permite imprimantei să imprime un caracter peste altul. ASCII prevedea adăugarea de diacritice la litere în acest fel, de exemplu:
- a BS "→ á
- a BS ` → à
- a BS ^ → â
- o BS / → ø
- c BS , → ç
- n BS ~ → с
Notă: în fonturi vechi, apostroful „ a fost desenat înclinat spre stânga, iar tildele ~ a fost deplasată în sus, astfel încât să se potrivească doar cu rolul unui acut și al unei tilde deasupra.
Dacă același simbol este suprapus peste un simbol, efectul este îndrăzneţ, iar dacă un caracter de subliniere este suprapus, atunci se obține text subliniat.
- a BS a → A
- aBS_→ A
Notă: Acesta este folosit, de exemplu, în sistemul de ajutor pentru om.
Variante naționale ASCII
Standardul ISO 646 (ECMA-6) prevede posibilitatea de a plasa simboluri naționale @ [ \ ] ^ ` { | } ~ . Pe lângă asta, la fața locului # poate fi postat £ , și pe loc $ - ¤ . Acest sistem este potrivit pentru limbile europene unde sunt necesare doar câteva caractere suplimentare. Versiunea ASCII fără caractere naționale se numește US-ASCII sau „Versiune de referință internațională”.
Ulterior, s-a dovedit a fi mai convenabil să folosești codificări pe 8 biți (pagini de cod), în care jumătatea inferioară a tabelului de coduri (0-127) este ocupată de caractere US-ASCII, iar jumătatea superioară (128-255) prin caractere suplimentare, inclusiv un set de caractere naționale. Astfel, jumătatea superioară a tabelului ASCII, înainte de adoptarea pe scară largă a Unicode, a fost folosită în mod activ pentru a reprezenta caractere localizate, litere ale limbii locale. Lipsa unui standard unificat pentru plasarea caracterelor chirilice în tabelul ASCII a cauzat multe probleme cu codificările (KOI-8, Windows-1251 și altele). Alte limbi cu scripturi non-latine au suferit, de asemenea, de a avea mai multe codificări diferite.
.0 | .1 | .2 | .3 | .4 | .5 | .6 | .7 | .8 | .9 | .A | .B | .C | .D | .E | .F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | NUL | SOM | EOA | EOM | EQT | W.R.U. | RU | CLOPOT | BKSP | HT | LF | VT | FF | CR | ASA DE | SI. |
1. | DC 0 | DC 1 | DC 2 | DC 3 | DC 4 | ERR | SINCRONIZARE | L.E.M. | S 0 | S 1 | S 2 | S 3 | S 4 | S 5 | S 6 | S 7 |
2. | ||||||||||||||||
3. | ||||||||||||||||
4. | GOL | ! | " | # | $ | % | & | " | ( | ) | * | + | , | - | . | / |
5. | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
6. | ||||||||||||||||
7. | ||||||||||||||||
8. | ||||||||||||||||
9. | ||||||||||||||||
A. | @ | A | B | C | D | E | F | G | H | eu | J | K | L | M | N | O |
B. | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ← | |
C. | ||||||||||||||||
D. | ||||||||||||||||
E. | A | b | c | d | e | f | g | h | i | j | k | l | m | n | o | |
F. | p | q | r | s | t | u | v | w | X | y | z | ESC | DEL |
Pe acele computere în care unitatea minimă de memorie adresabilă a fost un cuvânt de 36 de biți, au fost utilizate inițial caractere de 6 biți (1 cuvânt = 6 caractere). După trecerea la ASCII, astfel de computere au început să conțină fie 5 caractere de șapte biți (1 bit a rămas în plus), fie 4 caractere de nouă biți într-un cuvânt.
Codurile ASCII sunt, de asemenea, folosite pentru a determina ce tastă este apăsată în timpul programării. Pentru o tastatură QWERTY standard, tabelul de coduri arată astfel:
Tabel de coduri de caractere ASCII Windows. Trebuie remarcat faptul că caracterele de control ale tabelului ASCII au fost utilizate inițial pentru a asigura schimbul de date prin telemașină, introducerea datelor de pe bandă perforată și pentru controlul simplu al dispozitivelor externe. |
Cod | Descriere |
---|---|
NUL, 00 | Nul, gol |
SOH, 01 | Începutul titlului |
STX, 02 | Începutul textului, începutul textului. |
ETX, 03 | Sfârșitul textului, sfârșitul textului |
EOT, 04 | Sfârșitul transmisiei |
ENQ, 05 | Întreba. Vă rugăm să confirmați |
ACK, 06 | Confirmare. confirm |
BEL, 07 | Bell, sună |
BS, 08 | Backspace, întoarceți un caracter înapoi |
TAB, 09 | Filă, filă orizontală |
LF, 0A | Line Feed, line feed. În prezent, în majoritatea limbajelor de programare este notat ca \n |
VT, 0B | Filă verticală, tabulare verticală. |
FF, 0C | Feed de formulare, feed de pagini, pagină nouă |
CR, 0D | Întoarcere cu cărucior, întoarcere cu cărucior. În prezent, în majoritatea limbajelor de programare este notat cu \r |
deci,0E | Shift Out, schimbați culoarea benzii de cerneală din dispozitivul de imprimare |
SI,0F | Schimbați, întoarceți înapoi culoarea benzii de cerneală din dispozitivul de imprimare |
DLE, 10 | Data Link Escape, comutarea canalului la transmisia de date |
DC1, 11 DC2, 12 DC3, 13 DC4, 14 | Controlul dispozitivului, simboluri de control al dispozitivului |
NAK, 15 | Confirmare negativă, nu confirm. |
SYN, 16 | Sincronizare. Simbol de sincronizare |
ETB, 17 | Sfârșitul blocului de text, sfârșitul blocului de text |
CAN, 18 | Anulare, anulare a unei transmise anterior |
EM, 19 | Sfârșitul Mediului |
SUB, 1A | Înlocuitor, înlocuitor. Plasat în locul unui simbol al cărui sens a fost pierdut sau corupt în timpul transmiterii |
ESC, 1B | Secvență de control de evacuare |
FS, 1C | Separator de fișiere, separator de fișiere |
GS, 1D | Separator de grup |
RS, 1E | Separator de înregistrări, separator de înregistrări |
SUA, 1F | Separator de unități |
DEL, 7F | Ștergeți, ștergeți ultimul caracter. |
După cum știți, un computer stochează informații binar, reprezentându-l ca o succesiune de unu și zerouri. Pentru a traduce informații î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 de dezvoltare actual tehnologia calculatoarelor utilizatorului nu i se cere să cunoască codul fiecărui personaj specific. in orice caz înțelegere generală modul în care se realizează codarea 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.
Pentru multi ani această codificare a fost cel 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 sistem 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 originala tabelul 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ă codurile de caractere ASCII direct. Pentru dezvoltator software De obicei, este suficient să cunoașteți numărul elementului din tabel pentru a calcula, dacă este necesar, codul acestuia folosind sistemul binar.
Limba rusă
După ce a dezvoltat codificări pentru limbile scandinave, chineză, coreeană, greacă etc., la începutul anilor '70, a început să creeze propria sa versiune. Uniunea Sovietică. 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ă în pozițiile 128-255 ar putea exista diverse semne, iar la schimbarea unei codifică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.
Deci ASCII este parte importantă povestiri tehnologia Informatiei, cu toate acestea, 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
|
|
După cum este ușor de văzut, doar în această codificare scrisori, și cele care sunt folosite în engleză. Există, de asemenea, simboluri 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 permit, doar prin afișare caractere text, oferă o imagine de grafică. Folosind pseudografice, de exemplu, un program de control funcționează Fișiere FAR Administrator.
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; scrisori în limba engleză sunt prezentate în mod egal.
Organizare ISO(International Standardization Organization) a adoptat un grup de standarde ISO 8859. Definește codificări pe 8 biți pentru grupuri diferite 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 e-mail în Internetul rusesc. De asemenea, utilizat pe scară largă în sisteme de operare 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, cei străini puteau lucra fără schimbări programe text, de exemplu, celebrul Norton Commander. CP866 este acum utilizat pentru programele Windows care rulează în ferestre text sau în modul text pe ecran complet, inclusiv FAR Manager.
Texte în CP866 anul trecut sunt destul de rare (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). Datorită acestei locații programe de calculator Este foarte ușor de sortat alfabetic.
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”.
ÎN În ultima vremeȘi ordinea alfabetului Dispunerea caracterelor în tabelul de codificare și lizibilitatea cu pierderea celui de-al 8-lea bit și-au pierdut importanța decisivă. Al optulea bit in calculatoare moderne nu se pierde în timpul transmiterii sau procesării. Și sortarea alfabetică se face ținând cont de codificare, și nu simpla comparatie coduri (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, dimpotrivă, ar fi codificate în KOI-8, iar computerul ar decoda textul conform tabelului CP1251, rezultatul ar fi „U HCHBTSEOYEN”.
Uneori se întâmplă ca un computer să descifreze literele în limba rusă folosind un tabel care nu este destinat limbii ruse. Apoi, în loc de litere 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 programe moderne face față cu determinarea codificărilor documentelor de pe Internet ( e-mailuriși pagini Web) în mod independent. 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:
Unicode (Unicode în engleză) este un standard de codificare a caracterelor. Mai simplu spus, acesta este un tabel de corespondență între caracterele textului ( , litere, elemente de punctuație) coduri binare. Calculatorul înțelege doar succesiunea de zerouri și unu. Pentru ca acesta să știe exact ce ar trebui să afișeze pe ecran, este necesar să atribuie fiecărui caracter propriul său număr unic. În anii optzeci, caracterele erau codificate într-un octet, adică opt biți (fiecare bit este un 0 sau 1). Astfel, s-a dovedit că un tabel (aka codificare sau set) poate găzdui doar 256 de caractere. Acest lucru poate să nu fie suficient chiar și pentru o singură limbă. Prin urmare, au apărut multe codificări diferite, confuzia cu care a dus adesea la apariția unor farfurii ciudate pe ecran în loc de text care poate fi citit. Necesar standard unic, ceea ce a devenit Unicode. Cea mai folosită codificare este UTF-8 (Unicode Transformation Format), care utilizează 1 până la 4 octeți pentru a reprezenta un caracter.
Simboluri
Caracterele din tabelele Unicode sunt numerotate numere hexazecimale. De exemplu, chirilic majusculă M este desemnat U+041C. Aceasta înseamnă că se află la intersecția rândului 041 și coloanei C. Puteți să-l copiați pur și simplu și apoi să-l lipiți undeva. Pentru a nu scotoci printr-o listă de mai mulți kilometri, ar trebui să folosiți căutarea. Când accesați pagina cu simboluri, veți vedea numărul său Unicode și cum este scris în diferite fonturi. Puteți introduce semnul în sine în bara de căutare, chiar dacă în schimb este desenat un pătrat, măcar pentru a afla ce a fost. De asemenea, pe acest site există seturi speciale (și aleatorii) de același tip de icoane, colectate din diferite secțiuni, pentru ușurință în utilizare.
Standardul Unicode este internațional. Include personaje din aproape toate scenariile lumii. Inclusiv cele care nu mai sunt folosite. Hieroglife egiptene, rune germanice, scriere mayașă, cuneiforme și alfabete ale statelor antice. Sunt prezentate, de asemenea, denumiri ale greutăților și măsurilor, notația muzicală și conceptele matematice.
Consorțiul Unicode în sine nu inventează caractere noi. Acele icoane care își găsesc utilizarea în societate sunt adăugate pe tabele. De exemplu, semnul rublei a fost folosit în mod activ timp de șase ani înainte de a fi adăugat la Unicode. Pictogramele Emoji (emoticons) au fost, de asemenea, utilizate pe scară largă în Japonia înainte de a fi incluse în codificare. Si aici mărci comerciale, iar siglele companiei nu sunt adăugate deloc. Chiar și cele atât de comune ca măr măr sau steag Windows. Până în prezent, aproximativ 120 de mii de caractere sunt codificate în versiunea 8.0.