Fiecare computer are propriul său set de simboluri, pe care le implementează. Acest set conține 26 de litere mari și mici, numere și caractere speciale (punct, spațiu etc.). Simbolurile atunci când sunt traduse în numere întregi sunt coduri denumite. Au fost dezvoltate standarde astfel încât computerele să aibă același set de coduri.
Standardul ASCII
ASCII (American Standard Code for Inmormation Interchange) este codul standard american pentru schimbul de informații. Fiecare caracter ASCII are 7 biți, deci numărul maxim de caractere este de 128 (Tabelul 1). Codurile de la 0 la 1F sunt caractere de control și nu sunt tipărite. Sunt necesare multe caractere ASCII neimprimabile pentru a transfera date. De exemplu, un mesaj poate consta din caracterul de început al antetului SOH, al antetului STX și al caracterului de început al textului, textul ETX însuși și caracterul de sfârșit al textului și caracterul de sfârșit al transmisiei EOT. Cu toate acestea, datele din rețea sunt transmise în pachete, care sunt ele însele responsabile pentru începutul și sfârșitul transmisiei. Deci caracterele care nu pot fi imprimate sunt aproape niciodată folosite.
Tabelul 1 - Tabelul de coduri ASCII
Număr | Echipă | Sens | Număr | Echipă | Sens |
---|---|---|---|---|---|
0 | NUL | Pointer nul | 10 | DLE | Ieșirea din sistemul de transport |
1 | DECI H | începutul direcției | 11 | DC1 | Managementul dispozitivelor |
2 | STX | Începutul textului | 12 | DC2 | Managementul dispozitivelor |
3 | ETX | Sfârșitul textului | 13 | DC3 | Managementul dispozitivelor |
4 | EOT | Sfârșitul transmisiei | 14 | DC4 | Managementul dispozitivelor |
5 | ACK | Anchetă | 15 | NAK | Neconfirmarea admiterii |
6 | BEL | Confirmarea admiterii | 16 | SYN | Simplu |
7 | BS | Simbol clopot | 17 | ETB | Sfârșitul blocului de transfer |
8 | Ht | Indentatură în spate | 18 | POATE SA | Notă |
9 | LF | Filă orizontală | 19 | EM | Sfârșitul media |
A | VT | Traducerea liniilor | 1A | SUB | Indice |
B | FF | Filă verticală | 1B | ESC | Ieșire |
C | CR | Traducerea paginii | 1C | FS | Separator de fișiere |
D | ASA DE | Retur transport | 1D | GS | Separator de grup |
E | SI | Trecerea la un registru suplimentar | 1E | Rs | Separator de înregistrări |
SI | Comutați la registrul standard | 1F | S.U.A. | Separator de module |
Număr | Simbol | Număr | Simbol | Număr | Simbol | Număr | Simbol | Număr | Simbol | Număr | Simbol |
---|---|---|---|---|---|---|---|---|---|---|---|
20 | spaţiu | 30 | 0 | 40 | @ | 50 | P | 60 | . | 70 | p |
21 | ! | 31 | 1 | 41 | A | 51 | Q | 61 | A | 71 | q |
22 | ‘ | 32 | 2 | 42 | B | 52 | R | 62 | b | 72 | r |
23 | # | 33 | 3 | 43 | C | 53 | S | 63 | c | 73 | s |
24 | φ | 34 | 4 | 44 | D | 54 | T | 64 | d | 74 | t |
25 | % | 35 | 5 | 45 | E | 55 | ȘI | 65 | e | 75 | și |
26 | & | 36 | 6 | 46 | F | 56 | V | 66 | f | 76 | v |
27 | ‘ | 37 | 7 | 47 | G | 57 | W | 67 | g | 77 | w |
28 | ( | 38 | 8 | 48 | H | 58 | X | 68 | h | 78 | X |
29 | ) | 39 | 9 | 49 | eu | 59 | Y | 69 | i | 70 | y |
2A | ‘ | 3A | ; | 4A | J | 5A | Z | 6A | j | 7A | z |
2B | + | 3B | ; | 4B | K | 5B | [ | 6B | k | 7B | { |
2C | ‘ | 3C | < | 4C | L | 5C | \ | 6C | l | 7C | | |
2D | — | 3D | = | 4D | M | 5D | ] | 6D | m | 7D | } |
2E | 3E | > | 4E | N | 5E | — | 6E | n | 7E | ~ | |
2F | / | 3F | g | 4F | O | 5F | _ | 6F | o | 7F | DEL |
Standard Unicode
Codificarea anterioară este excelentă pentru engleză, dar nu convenabilă pentru alte limbi. De exemplu, în germană există umlauts, iar în franceză sunt superscripte. Unele limbi au alfabete complet diferite. Prima încercare de a extinde ASCII a fost IS646, care a extins codificarea anterioară cu încă 128 de caractere. S-au adăugat litere latine cu linii și semne diacritice și a primit numele - latină 1. Următoarea încercare a fost IS 8859 - care conținea o pagină de cod. Au existat încă încercări de extindere, dar acest lucru nu a fost universal. Codificarea UNICODE a fost creată (este 10646). Ideea din spatele codificării este de a atribui fiecărui caracter o singură valoare constantă de 16 biți, care se numește - indicator de cod... Acest lucru oferă un total de 65536 de indicatori. Pentru a economisi spațiu, am folosit Latin-1 pentru codurile 0-255, schimbând ușor ASII în UNICODE. Acest standard a rezolvat multe probleme, dar nu toate. În legătură cu sosirea de cuvinte noi, de exemplu, pentru limba japoneză, trebuie să creșteți numărul de termeni cu aproximativ 20 de mii. De asemenea, trebuie să includeți braille.
Simboluri suprapuse
Caracterul BS (backspace) permite imprimantei să suprascrie un caracter. În ASCII, a fost prevăzut pentru adăugarea de semne 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 cu o înclinare spre stânga, iar tilda ~ a fost deplasată în sus, astfel încât să se potrivească doar cu rolul de acut și tilde deasupra.
Dacă același simbol este suprapus unui caracter, atunci se obține efectul unui font aldine, iar dacă pe caracter este suprapus un caracter de subliniere, atunci se obține text subliniat.
- a BS a → A
- a BS _ → A
Notă: aceasta este folosită, de exemplu, în sistemul de ajutor pentru om.
Variante naționale ASCII
Standardul ISO 646 (ECMA-6) prevede posibilitatea plasării caracterelor naționale @ [ \ ] ^ ` { | } ~ ... Pe lângă asta, pe loc # poate fi cazat £ , ș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 „International Reference Version”.
Ulterior, s-a dovedit a fi mai convenabil să folosiți 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) este ocupat de 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 o scriere non-latină au suferit, de asemenea, de prezența mai multor 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 | WRU | RU | CLOPOT | BKSP | Ht | LF | VT | FF | CR | ASA DE | SI |
1. | DC 0 | DC 1 | DC 2 | DC 3 | DC 4 | ERR | SINCRONIZARE | LEM | 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 pe astfel de computere, au început să plaseze fie 5 caractere de șapte biți într-un cuvânt (1 bit a rămas de prisos), fie 4 caractere de nouă biți.
Codurile ASCII sunt de asemenea folosite pentru a identifica tasta apăsată în timpul programării. Pentru o tastatură QWERTY standard, tabelul de coduri arată astfel: