Znaky latinskej abecedy ascii kódy. Kódovanie textových informácií

  • 21.09.2019

[8-bitové kódovania: ASCII, KOI-8R a CP1251] Prvé tabuľky znakovej sady vytvorené v USA nepoužívali ôsmy bit v byte. Text bol prezentovaný ako sekvencia bajtov, ale ôsmy bit nebol braný do úvahy (slúžil na servisné účely).

Všeobecne uznávaným štandardom sa stal stôl ASCII(Americký štandardný kód pre výmenu informácií). Prvých 32 znakov ASCII (00 až 1F) bolo použitých pre netlačiteľné znaky. Boli určené na ovládanie tlačového zariadenia a podobne. Zvyšok - od 20 do 7F - sú normálne (tlačiteľné) znaky.

Tabuľka 1 - ASCII kódovanie

decHexoktCharPopis
0 0 000 nulový
1 1 001 začiatok smerovania
2 2 002 začiatok textu
3 3 003 koniec textu
4 4 004 koniec prenosu
5 5 005 vyšetrovanie
6 6 006 potvrdiť
7 7 007 zvonček
8 8 010 backspace
9 9 011 horizontálna záložka
10 A 012 Nový riadok
11 B 013 vertikálna záložka
12 C 014 nová stránka
13 D 015 návrat vozňa
14 E 016 vysunúť
15 F 017 zaradiť sa
16 10 020 únik dátového spojenia
17 11 021 ovládanie zariadenia 1
18 12 022 ovládanie zariadenia 2
19 13 023 ovládanie zariadenia 3
20 14 024 ovládanie zariadenia 4
21 15 025 negatívne priznať
22 16 026 synchrónny voľnobeh
23 17 027 koniec prekl. blokovať
24 18 030 Zrušiť
25 19 031 koniec média
26 1A 032 náhrada
27 1B 033 uniknúť
28 1C 034 oddeľovač súborov
29 1D 035 oddeľovač skupín
30 1E 036 oddeľovač záznamov
31 1F 037 oddeľovač jednotiek
32 20 040 priestor
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 ?
decHexoktChar
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 ja
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 r
122 7A 172 z
123 7B 173 {
124 7C 174 |
125 7D 175 }
126 7E 176 ~
127 7F 177 DEL

Ako môžete ľahko vidieť, toto kódovanie obsahuje iba latinské písmená a tie, ktoré sa používajú v angličtine. Nechýbajú ani aritmetické a iné servisné symboly. Neexistujú však žiadne ruské písmená alebo dokonca špeciálne latinské písmená pre nemčinu alebo francúzštinu. To sa dá ľahko vysvetliť – kódovanie bolo vyvinuté špeciálne ako americký štandard. Keď sa počítače začali používať na celom svete, bolo potrebné zakódovať ďalšie symboly.

Na tento účel bolo rozhodnuté použiť ôsmy bit v každom byte. K dispozícii tak bolo 128 ďalších hodnôt (od 80 do FF), ktoré bolo možné použiť na kódovanie znakov. Prvá z osembitových tabuliek je „rozšírená ASCII“ ( Rozšírené ASCII) - zahŕňal rôzne varianty latinských znakov používaných v niektorých jazykoch západnej Európy. Obsahoval aj ďalšie dodatočné symboly, vrátane pseudo grafiky.

Pseudografické znaky umožňujú zobrazením iba textových znakov poskytnúť určitú podobu grafiky. Napríklad program na správu súborov FAR Manager pracuje s pomocou pseudografiky.

V rozšírenej ASCII tabuľke neboli žiadne ruské písmená. V Rusku (predtým ZSSR) a v iných štátoch boli vytvorené vlastné kódovania, ktoré umožnili reprezentovať špecifické „národné“ znaky v 8-bitových textových súboroch - latinské písmená poľského a českého jazyka, cyrilika (vrátane ruských písmen ) a iné abecedy.

Vo všetkých kódovaniach, ktoré sa rozšírili, sa prvých 127 znakov (to znamená bajtové hodnoty s ôsmym bitom rovným 0) zhoduje s ASCII. Súbor ASCII teda funguje v ktoromkoľvek z týchto kódovaní; písmená anglického jazyka sú znázornené rovnakým spôsobom.

Organizácia ISO(Medzinárodná organizácia pre normalizáciu) prijala skupinu noriem ISO 8859... Definuje 8-bitové kódovanie pre rôzne skupiny jazykov. Takže ISO 8859-1 je rozšírená ASCII tabuľka pre USA a západnú Európu. A ISO 8859-5 je tabuľka pre azbuku (vrátane ruštiny).

Z historických dôvodov sa však kódovanie ISO 8859-5 neuchytilo. V skutočnosti sa pre ruský jazyk používajú nasledujúce kódovania:

Kódová stránka 866 ( CP866), známy ako „DOS“, známy aj ako „alternatívne kódovanie GOST“. Bol široko používaný až do polovice 90. rokov; sa teraz používa v obmedzenej miere. Prakticky sa nepoužíva na distribúciu textov na internete.
- KOI-8. Vyvinutý v 70-tych a 80-tych rokoch. Je to všeobecne akceptovaný štandard pre prenos poštových správ na ruskom internete. Je tiež široko používaný v operačných systémoch rodiny Unix, vrátane Linuxu. Verzia KOI-8, určená pre ruský jazyk, sa nazýva KOI-8R; existujú verzie pre iné cyrilické jazyky (napríklad KOI8-U je možnosť pre ukrajinský jazyk).
- Kódová stránka 1251, CP1251, Windows-1251. Vyvinutý spoločnosťou Microsoft na podporu ruského jazyka v systéme Windows.

Hlavnou výhodou CP866 bolo zachovanie pseudografických znakov na rovnakých miestach ako v Extended ASCII; preto cudzie textové programy, napríklad slávny Norton Commander, mohli fungovať bez zmien. V súčasnosti sa CP866 používa pre programy Windows bežiace v textových oknách alebo textovom režime na celú obrazovku, vrátane FAR Manager.

V posledných rokoch sú texty v CP866 pomerne zriedkavé (ale používa sa na kódovanie ruských názvov súborov vo Windows). Preto sa budeme podrobnejšie zaoberať dvoma ďalšími kódovaniami - KOI-8R a CP1251.



Ako vidíte, v tabuľke kódovania CP1251 sú ruské písmená usporiadané v abecednom poradí (okrem písmena E). Toto usporiadanie veľmi uľahčuje abecedné triedenie počítačových programov.

Ale v KOI-8R sa zdá, že poradie ruských písmen je náhodné. Ale v skutočnosti to tak nie je.

Mnoho starších programov pri spracovaní alebo prenose textu stratilo 8. bit. (Teraz takéto programy prakticky "vymreli", ale koncom 80. - začiatkom 90. rokov boli rozšírené). Ak chcete získať 7-bitovú hodnotu od 8-bitovej hodnoty, odčítajte 8 od najvýznamnejšej číslice; napríklad E1 sa zmení na 61.

Teraz porovnajte KOI-8R s tabuľkou ASCII (tabuľka 1). Zistíte, že ruské písmená sú jasne zarovnané s latinskými. Ak ôsmy bit zmizne, malé ruské písmená sa zmenia na veľké latinské písmená a veľké ruské písmená sa zmenia na malé latinské písmená. Takže E1 v KOI-8 je ruské „A“, zatiaľ čo 61 v ASCII je latinské „a“.

KOI-8 vám teda umožňuje zachovať čitateľnosť ruského textu pri strate 8. bitu. „Ahoj všetci“ sa zmení na „pRIWET WSEM“.

V poslednom čase stráca rozhodujúci význam ako abecedné poradie znakov v kódovacej tabuľke, tak aj čitateľnosť so stratou 8. bitu. Ôsmy bit v moderných počítačoch sa nestráca ani pri prenose, ani pri spracovaní. Triedenie v abecednom poradí je založené na kódovaní a nie iba na porovnávaní kódov. (Mimochodom, kódy CP1251 nie sú úplne abecedné - písmeno E nie je na svojom mieste).

Vzhľadom na to, že existujú dve bežné kódovania, pri práci s internetom (pošta, prehliadanie webových stránok) niekedy namiesto ruského textu môžete vidieť nezmyselnú sadu písmen. Napríklad „Ja som SBUFEMHEL“. Toto sú len slová „s rešpektom“; ale boli zakódované v kódovaní CP1251 a počítač dekódoval text podľa tabuľky KOI-8. Ak by boli rovnaké slová naopak zakódované v KOI-8 a počítač dekódoval text podľa tabuľky CP1251, výsledkom bude „У ХЧБЦЕОЙЕН“.

Niekedy sa stáva, že počítač vôbec dešifruje ruské písmená podľa tabuľky, ktorá nie je určená pre ruský jazyk. Potom sa namiesto ruských písmen objaví nezmyselná sada symbolov (napríklad latinské písmená východoeurópskych jazykov); často sa im hovorí „crocozyabras“.

Vo väčšine prípadov si moderné programy poradia s určovaním kódovania internetových dokumentov (e-mailov a webových stránok) samy. Ale niekedy "zlyhajú" a potom môžete vidieť zvláštne sekvencie ruských písmen alebo "krokozyabra". Na zobrazenie skutočného textu na obrazovke spravidla stačí manuálne zvoliť kódovanie v ponuke programu.

Pre článok boli použité informácie zo stránky http://open-office.edusite.ru/TextProcessor/p5aa1.html.

Materiál prevzatý zo stránky:

Podľa Medzinárodnej telekomunikačnej únie v roku 2016 s rôznou pravidelnosťou využívalo internet tri a pol miliardy ľudí. Väčšina z nich ani neuvažuje o tom, že akékoľvek správy, ktoré posielajú prostredníctvom počítačov alebo mobilných zariadení, ako aj texty, ktoré sa zobrazujú na všetkých druhoch monitorov, sú v skutočnosti kombináciami 0 a 1. Táto prezentácia informácií sa nazýva kódovanie . Poskytuje a výrazne uľahčuje jeho skladovanie, spracovanie a prenos. V roku 1963 bolo vyvinuté americké kódovanie ASCII, ktorému je venovaný tento článok.

Prezentácia informácií v počítači

Z pohľadu každého elektronického počítača je text súborom jednotlivých znakov. Patria sem nielen písmená, vrátane veľkých, ale aj interpunkčné znamienka a čísla. Okrem toho sa používajú špeciálne znaky „=“, „&“, „(“ a medzery.

Súbor symbolov, ktoré tvoria text, sa nazýva abeceda a ich počet sa nazýva mohutnosť (označuje sa ako N). Na jeho definovanie sa používa výraz N = 2 ^ b, kde b je počet bitov alebo informačná váha konkrétneho znaku.

Je dokázané, že abeceda s kapacitou 256 znakov dokáže reprezentovať všetky potrebné znaky.

Keďže 256 je 8. mocnina dvojky, váha každého znaku je 8 bitov.

Jednotka merania 8 bitov sa nazýva 1 bajt, preto sa zvykne tvrdiť, že akýkoľvek znak v texte uloženom v počítači zaberá jeden bajt pamäte.

Ako sa robí kódovanie

Akékoľvek texty sa vkladajú do pamäte osobného počítača pomocou klávesov klávesnice, na ktorých sa píšu čísla, písmená, interpunkčné znamienka a iné symboly. Prenášajú sa do pamäte RAM v binárnom kóde, to znamená, že každý znak je spojený s desiatkovým kódom známym ľuďom, od 0 do 255, čo zodpovedá binárnemu kódu - od 00000000 do 11111111.

Bajtové kódovanie znakov umožňuje textovému procesoru pristupovať ku každému znaku samostatne. Zároveň stačí 256 znakov na vyjadrenie akejkoľvek informácie o znakoch.

kódovanie znakov ASCII

Táto skratka v angličtine znamená kód pre výmenu informácií.

Dokonca aj na úsvite informatizácie bolo zrejmé, že môžete prísť so širokou škálou spôsobov kódovania informácií. Na prenos informácií z jedného počítača do druhého však bolo potrebné vyvinúť jednotný štandard. Takže v roku 1963 sa v Spojených štátoch objavila kódovacia tabuľka ASCII. V ňom je akýkoľvek symbol počítačovej abecedy spojený s jeho radovým číslom v binárnom vyjadrení. Spočiatku sa ASCII používal iba v Spojených štátoch a neskôr sa stal medzinárodným štandardom pre počítače.

ASCII kódy sú rozdelené na 2 časti. Len prvá polovica tejto tabuľky sa považuje za medzinárodnú normu. Obsahuje znaky s poradovými číslami od 0 (kódované ako 00000000) do 127 (kód 01111111).

Sériové číslo

ASCII kódovanie textu

Symbol

0000 0000 - 0001 1111

Znaky s N od 0 do 31 sa nazývajú riadiace znaky. Ich funkciou je „usmernenie“ procesu zobrazovania textu na monitore alebo tlačovom zariadení, vydávanie zvukového signálu a pod.

0010 0000 - 0111 1111

Znaky s N od 32 do 127 (štandardná časť tabuľky) - veľké a malé písmená latinskej abecedy, 10-miestne čísla, interpunkčné znamienka, ako aj rôzne zátvorky, obchodné a iné symboly. Znak 32 označuje medzeru.

1000 0000 - 1111 1111

Znaky s N od 128 do 255 (alternatívna časť tabuľky alebo kódová stránka) môžu mať rôzne varianty, z ktorých každý má svoje číslo. Kódová stránka sa používa na špecifikovanie národných abecied, ktoré sa líšia od latinky. Najmä s jeho pomocou sa vykonáva kódovanie ASCII pre ruské znaky.

V tabuľke kódovania píšte veľké písmená a nasledujú za sebou v abecednom poradí a čísla - vo vzostupnom poradí hodnôt. Tento princíp platí aj pre ruskú abecedu.

Riadiace znaky

Kódovacia tabuľka ASCII bola pôvodne vytvorená na príjem a prenos informácií na takom zariadení, ktoré sa dlho nepoužívalo, ako je napríklad teletyp. V tejto súvislosti boli do znakovej sady zahrnuté netlačiteľné znaky, ktoré sa používajú ako príkazy na ovládanie tohto zariadenia. Podobné príkazy sa používali v takých metódach odosielania správ pred počítačom, ako je Morseova abeceda atď.

Najbežnejším znakom „ďalekopisu“ je NUL (00, „nula“). Dodnes sa používa vo väčšine programovacích jazykov a označuje zakončenie riadku.

Kde sa používa kódovanie ASCII?

Americký štandardný kód je potrebný na viac než len zadávanie textových informácií z klávesnice. Používa sa aj v grafike. Konkrétne v ASCII Art Maker predstavujú obrázky rôznych rozšírení spektrum znakov ASCII.

Takéto produkty sú dvoch typov: vykonávajú funkciu grafických editorov prevádzaním obrázkov na text a konverziou „obrázkov“ na grafiku ASCII. Napríklad slávny emotikon je ukážkovým príkladom kódovacieho znaku.

ASCII je možné použiť aj pri vytváraní HTML dokumentu. V tomto prípade môžete zadať určitú množinu znakov a pri prezeraní stránky sa na obrazovke objaví znak, ktorý zodpovedá tomuto kódu.

ASCII je tiež potrebné na vytváranie viacjazyčných stránok, pretože znaky, ktoré nie sú zahrnuté v špecifickej národnej tabuľke, sú nahradené kódmi ASCII.

Niektoré funkcie

Na kódovanie textových informácií v kódovaní ASCII sa pôvodne používalo 7 bitov (jeden zostal prázdny), no dnes funguje ako 8-bitový.

Písmená v hornom a dolnom stĺpci sa od seba líšia iba jedným bitom. To výrazne znižuje zložitosť kontroly.

Používanie ASCII v Microsoft Office

V prípade potreby je možné tento typ kódovania textu použiť v textových editoroch spoločnosti Microsoft, ako sú Poznámkový blok a Office Word. Pri písaní však v tomto prípade nebude možné použiť niektoré funkcie. Napríklad nebudete môcť použiť tučné písmo, pretože ASCII iba zachováva význam informácie a ignoruje jej celkový vzhľad a tvar.

Štandardizácia

Organizácia ISO prijala normy ISO 8859. Táto skupina definuje osembitové kódovanie pre rôzne jazykové skupiny. Konkrétne ISO 8859-1 je Extended ASCII, čo je tabuľka pre USA a západnú Európu. A ISO 8859-5 je tabuľka používaná pre cyriliku vrátane ruského jazyka.

Z mnohých historických dôvodov sa norma ISO 8859-5 používa veľmi krátko.

Pre ruský jazyk sa v súčasnosti v skutočnosti používajú kódovania:

  • CP866 (kódová stránka 866) alebo DOS, ktoré sa často označuje ako alternatívne kódovanie GOST. Aktívne sa používal až do polovice 90. rokov minulého storočia. V súčasnosti sa prakticky nepoužíva.
  • KOI-8. Kódovanie bolo vyvinuté v 70-80-tych rokoch 20. storočia av súčasnosti je všeobecne akceptovaným štandardom pre poštové správy na Runete. Je široko používaný v OS rodiny Unix, vrátane Linuxu. „Ruská“ verzia KOI-8 sa nazýva KOI-8R. Okrem toho existujú verzie pre iné cyrilické jazyky, napríklad ukrajinčinu.
  • Kódová stránka 1251 (CP 1251, Windows - 1251). Vyvinutý spoločnosťou Microsoft na poskytovanie podpory pre ruský jazyk v prostredí Windows.

Hlavnou výhodou prvého štandardu CP866 bolo zachovanie pseudografických znakov na rovnakých pozíciách ako v Extended ASCII. To umožnilo bez zmien spúšťať cudzie textové programy, ako napríklad známy Norton Commander. V súčasnosti sa CP866 používa pre programy vyvinuté v systéme Windows, ktoré pracujú v textovom režime na celú obrazovku alebo v textových oknách, vrátane FAR Manager.

Počítačové texty napísané v kódovaní CP866 sú v poslednej dobe pomerne zriedkavé, ale práve toto kódovanie sa používa pre ruské názvy súborov vo Windows.

"Unicode"

V súčasnosti je toto kódovanie najrozšírenejšie. Kódy Unicode sú rozdelené do oblastí. Prvý (U + 0000 až U + 007F) obsahuje znaky ASCII s kódmi. Nasledujú plochy znakov rôznych národných písiem, ako aj interpunkčných znamienok a technických symbolov. Okrem toho sú niektoré kódy "Unicode" vyhradené pre prípad, že bude v budúcnosti potrebné zahrnúť nové znaky.

Teraz viete, že v ASCII je každý znak reprezentovaný ako kombinácia 8 núl a jednotiek. Neodborníkom sa tieto informácie môžu zdať zbytočné a nezaujímavé, ale nechcete vedieť, čo sa deje „v mozgu“ vášho PC?!

Pre kompetentné používanie ASCII je potrebné rozširovať poznatky v tejto oblasti a o možnostiach kódovania.

Čo to je?

ASCII je kódovacia tabuľka tlačených znakov (pozri snímku obrazovky č. 1) napísaná na klávesnici počítača na prenos informácií a niektorých kódov. Inými slovami, abeceda a desatinné číslice sú zakódované do zodpovedajúcich symbolov, ktoré predstavujú a nesú potrebné informácie.

Kódovanie ASCII bolo vyvinuté v Amerike, takže štandardná tabuľka kódovania zvyčajne obsahuje anglickú abecedu s číslami, spolu asi 128 znakov. Potom však vyvstáva spravodlivá otázka: čo robiť, ak je potrebné kódovanie národnej abecedy?

Na riešenie týchto problémov boli vyvinuté ďalšie verzie tabuľky ASCII. Napríklad v prípade jazykov so štruktúrou cudzieho jazyka boli písmená anglickej abecedy buď odstránené, alebo k nim boli pridané ďalšie znaky vo forme národnej abecedy. Takže v kódovaní ASCII môžu byť ruské písmená pre národné použitie (pozri snímku obrazovky č. 2).

Kde sa používa systém kódovania ASCII?

Tento systém kódovania je potrebný nielen na písanie textových informácií na klávesnici. Používa sa aj v grafike. Napríklad v programe ASCII Art Maker sa grafické obrázky rôznych rozšírení skladajú zo spektra znakov ASCII (pozri snímku obrazovky č. 3).


Spravidla je možné takéto programy rozdeliť na tie, ktoré vykonávajú funkciu grafických editorov, invertujú obrázok na text, a tie, ktoré konvertujú obrázok na grafiku ASCII. Známy emotikon (alebo ako sa tiež nazýva „ usmievavá ľudská tvár") Je tiež príkladom kódovacieho znaku.

Táto metóda kódovania môže byť užitočná aj pri písaní alebo vytváraní dokumentu HTML. Napríklad zadáte špecifickú a potrebnú sadu znakov a pri zobrazení samotnej stránky sa na obrazovke zobrazí znak zodpovedajúci tomuto kódu.

Okrem iného je tento typ kódovania nevyhnutný pri vytváraní viacjazyčnej stránky, pretože znaky, ktoré nie sú zahrnuté v tej či onej národnej tabuľke, bude potrebné nahradiť ASCII kódmi. Ak má čitateľ priamy vzťah k informačným a komunikačným technológiám (IKT), bude pre neho užitočné oboznámiť sa s takými systémami, ako sú:

  1. Prenosná znaková sada;
  2. riadiace znaky;
  3. EBCDIC;
  4. VISCII;
  5. YUSCII;
  6. Unicode;
  7. umenie ASCII;
  8. KOI-8.

Vlastnosti tabuľky ASCII

Ako každý systematizovaný program, aj ASCII má svoje charakteristické vlastnosti. Napríklad desiatková číselná sústava (číslice od 0 do 9) sa prevedie na dvojkovú číselnú sústavu (t. j. každá desiatková číslica sa prevedie na binárne 288 = 1001000).

Písmená umiestnené v hornom a dolnom stĺpci sa od seba líšia len o kúsok, čo výrazne znižuje náročnosť kontroly a úpravy malých a veľkých písmen.

So všetkými týmito vlastnosťami funguje kódovanie ASCII ako osembitové, hoci pôvodne sa predpokladalo ako sedembitové.

Aplikácia ASCII v programoch balíka Microsoft Office:

V prípade potreby je možné túto možnosť kódovania informácií použiť v programe Microsoft Notepad a Microsoft Office Word. V rámci týchto aplikácií je možné dokument uložiť vo formáte ASCII, v tomto prípade však nebude možné pri písaní využívať niektoré funkcie.

Najmä výber tučným a tučným písmom bude nedostupný, pretože kódovanie zachováva iba význam zadaných informácií, nie všeobecný vzhľad a formu. Takéto kódy môžete do dokumentu pridať pomocou nasledujúcich softvérových aplikácií:

  • Microsoft Excel;
  • Microsoft FrontPage;
  • Microsoft InfoPath
  • Microsoft OneNote
  • Microsoft Outlook;
  • Microsoft PowerPoint;
  • Microsoft Project.

Treba mať na pamäti, že pri písaní ASCII kódu v týchto aplikáciách musíte podržať kláves ALT na klávesnici.

Všetky potrebné kódy si samozrejme vyžadujú dlhšie a podrobnejšie štúdium, ale to už je nad rámec nášho dnešného článku. Dúfam, že to považujete za užitočné.

Dobudúcna!

Dobrý zlý

Dobrý deň, milí čitatelia blogu. Dnes sa s vami porozprávame o tom, odkiaľ pochádzajú krakozyabry na stránke av programoch, aké kódovania textu existujú a ktoré by sa mali použiť. Pozrime sa bližšie na históriu ich vývoja, počnúc základným ASCII, ako aj jeho rozšírenými verziami CP866, KOI8-R, Windows 1251 a končiac modernými kódovaniami konzorcia Unicode UTF 16 a 8.

Niekomu sa tieto informácie môžu zdať nadbytočné, ale viete, koľko otázok dostávam v súvislosti s vyliezanými krakozyabrmi (nečitateľný súbor znakov). Teraz budem mať príležitosť odkázať každého na text tohto článku a nezávisle nájsť moje zárubne. No pripravte sa na absorbovanie informácií a skúste sledovať príbeh.

ASCII - základné kódovanie textu pre latinskú abecedu

Vývoj textových kódovaní prebiehal súčasne s formovaním IT priemyslu a za ten čas stihli prejsť pomerne veľkým množstvom zmien. Historicky to všetko začalo EBCDIC, ktoré nebolo v ruskej výslovnosti skôr eufónne, vďaka čomu bolo možné zakódovať písmená latinskej abecedy, arabské číslice a interpunkčné znamienka s riadiacimi znakmi.

Napriek tomu je východiskovým bodom pre vývoj moderného kódovania textu to slávne ASCII(Americký štandardný kód pre výmenu informácií, ktorý sa v ruštine zvyčajne vyslovuje ako „aski“). Popisuje prvých 128 znakov najčastejšie používaných anglicky hovoriacimi používateľmi – latinské písmená, arabské číslice a interpunkčné znamienka.

Dokonca aj týchto 128 znakov opísaných v ASCII obsahovalo niektoré servisné symboly, ako sú zátvorky, krížové čiary, hviezdičky atď. V skutočnosti ich môžete vidieť sami:

Práve týchto 128 znakov z pôvodnej verzie ASCII sa stalo štandardom a v akomkoľvek inom kódovaní sa s nimi určite stretnete a obstoja v tomto poradí.

Faktom však je, že pomocou jedného bajtu informácií je možné zakódovať nie 128, ale až 256 rôznych hodnôt (dve na osem sa rovná 256), teda po základnej verzii Asuka , objavila sa celá séria rozšírené ASCII kódovanie, do ktorej bolo možné okrem 128 základných znakov zakódovať aj symboly národného kódovania (napríklad ruské).

Tu možno stojí za to povedať trochu viac o číselných systémoch, ktoré sa používajú v popise. Po prvé, ako všetci viete, počítač pracuje iba s číslami v dvojkovej sústave, konkrétne s nulami a jednotkami ("Booleovská algebra", ak niekto chodil na vysokú školu alebo školu). , z ktorých každá má mocninu 2, počnúc nulou a až dve v siedmej:

Nie je ťažké pochopiť, že možných kombinácií núl a jednotiek v takejto konštrukcii môže byť len 256. Previesť číslo z dvojkovej sústavy do desiatkovej je celkom jednoduché. Stačí sčítať všetky mocniny dvoch, nad ktorými sú jedničky.

V našom príklade je to 1 (2 na nulu) plus 8 (dva na 3), plus 32 (dva na piatu mocninu), plus 64 (na šiestu), plus 128 (na siedmu). Súčet dostane 233 v desiatkovom zápise. Ako vidíte, všetko je veľmi jednoduché.

Ak sa však pozriete pozorne na tabuľku so znakmi ASCII, uvidíte, že sú zastúpené v hexadecimálnom kódovaní. Napríklad hviezdička zodpovedá hexadecimálnemu číslu 2A v Asuke. Asi viete, že v hexadecimálnej číselnej sústave sa okrem arabských číslic používajú aj latinské písmená od A (znamená desať) po F (znamená pätnásť).

No pre previesť binárne číslo na hexadecimálne uchýlite sa k nasledujúcej jednoduchej a intuitívnej metóde. Každý bajt informácií je rozdelený na dve časti po štyroch bitoch, ako je znázornené na obrázku vyššie. To. v každom polovičnom byte je možné binárne zakódovať iba šestnásť hodnôt (dve až štvrtá mocnina), ktoré možno ľahko znázorniť ako hexadecimálne číslo.

Navyše v ľavej polovici bajtu bude potrebné znova počítať stupne od nuly, a nie ako je znázornené na snímke obrazovky. V dôsledku toho niekoľkými jednoduchými výpočtami zistíme, že na snímke obrazovky je zakódované číslo E9. Dúfam, že priebeh môjho uvažovania a riešenie tejto hádanky vám bolo jasné. Teraz poďme v skutočnosti pokračovať v rozprávaní o kódovaní textu.

Rozšírené verzie Asuka - kódovania CP866 a KOI8-R s pseudografiou

Začali sme teda hovoriť o ASCII, ktoré bolo, ako keby, východiskovým bodom pre vývoj všetkých moderných kódovaní (Windows 1251, Unicode, UTF 8).

Spočiatku obsahoval iba 128 znakov latinskej abecedy, arabské číslice a niečo iné, ale v rozšírenej verzii bolo možné použiť všetkých 256 hodnôt, ktoré je možné zakódovať do jedného bajtu informácií. Tie. bolo možné pridať do Aski symboly písmen vášho jazyka.

Tu bude potrebné ešte raz odbočiť, aby sme to objasnili - prečo vôbec potrebujeme kódovanie texty a prečo je to také dôležité. Symboly na obrazovke vášho počítača sú tvorené na základe dvoch vecí - sady vektorových foriem (reprezentácií) všetkých druhov znakov (sú v súboroch cos) a kódu, ktorý vám umožňuje vytiahnuť z tejto sady vektorových foriem (font súbor) presne ten symbol, ktorý bude potrebné vložiť na Správne miesto.

Je jasné, že za vektorové formy sú zodpovedné samotné fonty, no za kódovanie je zodpovedný operačný systém a v ňom použité programy. Tie. akýkoľvek text vo vašom počítači bude množinou bajtov, z ktorých každý zakóduje jeden jediný znak práve tohto textu.

Program, ktorý zobrazuje tento text na obrazovke (textový editor, prehliadač atď.), pri analýze kódu načíta kódovanie ďalšieho znaku a hľadá zodpovedajúcu vektorovú formu v požadovanom súbore písma, ktorý je pripojený na zobrazenie tohto textový dokument. Všetko je jednoduché a banálne.

To znamená, že na zakódovanie akéhokoľvek znaku, ktorý potrebujeme (napríklad z národnej abecedy), musia byť splnené dve podmienky - vektorová podoba tohto znaku musí byť v použitom fonte a tento znak by sa dal zakódovať v rozšírených ASCII kódovaniach v jeden bajt. Preto existuje veľa takýchto možností. Existuje niekoľko druhov rozšírenej Asuka len na kódovanie znakov ruského jazyka.

Napríklad pôvodne sa objavil CP866, v ktorej bolo možné použiť znaky ruskej abecedy a išlo o rozšírenú verziu ASCII.

Tie. jeho horná časť sa úplne zhodovala so základnou verziou Asuka (128 latinských znakov, čísel a akýchkoľvek iných svinstiev), ktorá je uvedená na snímke vyššie, ale už spodná časť tabuľky s kódovaním CP866 mala pohľad naznačený na snímke obrazovky tesne pod a umožňuje zakódovať ďalších 128 znakov (ruské písmená a všetky druhy pseudografiky):

Vidíte, v pravom stĺpci čísla začínajú 8, pretože čísla 0 až 7 sa týkajú základnej časti ASCII (pozri prvú snímku obrazovky). To. ruské písmeno "M" v CP866 bude mať kód 9C (nachádza sa na priesečníku zodpovedajúceho riadku s 9 a stĺpca s číslom C v hexadecimálnom zápise), ktorý možno zapísať do jedného bajtu informácie, a ak existuje vhodné písmo s ruskými znakmi, toto písmeno sa bez problémov zobrazí v texte.

Odkiaľ sa táto suma vzala? pseudografika v CP866? Ide o to, že toto kódovanie pre ruský text bolo vyvinuté ešte v tých chlpatých rokoch, keď ešte neexistovalo také rozšírenie grafických operačných systémov ako teraz. A v Dose a podobných textových operačných systémoch pseudografika umožnila nejakým spôsobom spestriť dizajn textov a preto ňou CP866 a všetci jeho kolegovia z kategórie rozšírených verzií Asuka oplývajú.

CP866 distribuovala spoločnosť IBM, ale okrem toho bolo vyvinutých niekoľko kódovaní pre ruské znaky, napríklad tento typ (rozšírené ASCII) možno pripísať KOI8-R:

Princíp jeho fungovania zostáva rovnaký ako u CP866 opísaného o niečo skôr – každý znak textu je zakódovaný jedným jediným bajtom. Snímka obrazovky zobrazuje druhú polovicu tabuľky KOI8-R, od r prvá polovica je úplne v súlade so základnou Asukou, ktorá je zobrazená na prvej snímke obrazovky v tomto článku.

Medzi vlastnosti kódovania KOI8-R možno poznamenať, že ruské písmená v jeho tabuľke nie sú v abecednom poradí, ako to bolo napríklad v CP866.

Ak sa pozriete na úplne prvú snímku obrazovky (základnej časti, ktorá je súčasťou všetkých rozšírených kódovaní), všimnete si, že v KOI8-R sa ruské písmená nachádzajú v rovnakých bunkách tabuľky ako písmená spoluhlásky latinskej abecedy. s nimi z prvej časti tabuľky. Bolo to urobené pre pohodlie prechodu z ruských znakov na latinské znaky vyradením iba jedného bitu (od dvoch do siedmej mocniny alebo 128).

Windows 1251 - moderná verzia ASCII a prečo vychádzajú krakozyabry

Ďalší vývoj kódovania textov súvisel s tým, že grafické operačné systémy získavali na popularite a potreba používať v nich pseudografiku časom zanikla. Výsledkom bola celá skupina, ktorá bola v podstate stále rozšírenými verziami Asuky (jeden znak textu je zakódovaný iba jedným bajtom informácie), ale už bez použitia pseudografických znakov.

Patrili medzi takzvané kódovania ANSI, ktoré vyvinul American Standards Institute. V bežnej reči sa pre verziu s podporou ruského jazyka stále používal názov azbuka. Príklad na to môže poslúžiť.

Od predtým používaných CP866 a KOI8-R sa priaznivo líšil tým, že miesto pseudografických symbolov v ňom zaujali chýbajúce symboly ruskej typografie (okrem prízvuku), ako aj symboly používané v slovanských jazykoch. blízko k ruštine (ukrajinský, bieloruský atď.):

Kvôli takémuto množstvu kódovania ruského jazyka mali výrobcovia písiem a softvérov neustále bolesti hlavy a my, milí čitatelia, sme často dostali von tie notoricky známe krakozyabry keď došlo k zámene s verziou použitou v texte.

Veľmi často sa dostali von pri odosielaní a prijímaní správ e-mailom, čo znamenalo vytvorenie veľmi zložitých konverzných tabuliek, ktoré v skutočnosti nedokázali tento problém zásadne vyriešiť, a používatelia na korešpondenciu sa často vyhýbali notoricky známym krakozyabom pri používaní Ruské kódovania ako CP866, KOI8-R alebo Windows 1251.

Krakozyabry, ktoré vyliezli namiesto ruského textu, boli v skutočnosti výsledkom nesprávneho použitia kódovania tohto jazyka, ktoré nezodpovedalo tomu, v ktorom bola textová správa pôvodne zakódovaná.

Napríklad, ak sa pokúsime zobraziť znaky zakódované pomocou CP866 pomocou tabuľky kódov Windows 1251, potom vyjdú tie isté krakozyabry (nezmyselná sada znakov), ktoré úplne nahradia text správy.

K podobnej situácii veľmi často dochádza, keď sa na fórach alebo blogoch omylom uloží text s ruskými znakmi v nesprávnom kódovaní, ktoré sa na stránke štandardne používa, alebo v nesprávnom textovom editore, ktorý do kódu pridá zablokovanie, ktoré nie je viditeľné pre voľným okom.

Nakoniec, takáto situácia s množstvom kódovaní a neustále sa objavujúcimi krakozyabras mnohými unavenými, existovali predpoklady na vytvorenie novej univerzálnej variácie, ktorá by nahradila všetky existujúce a konečne by vyriešila základný problém vzhľadu nečitateľných textov. . Okrem toho sa vyskytol problém jazykov ako čínština, kde bolo znakov jazyka oveľa viac ako 256.

Unicode - Univerzálne kódovanie UTF 8, 16 a 32

Tieto tisíce znakov z jazykovej skupiny juhovýchodnej Ázie nebolo možné opísať v jednom byte informácií, ktorý bol pridelený na kódovanie znakov v rozšírených verziách ASCII. V dôsledku toho bolo vytvorené konzorcium tzv Unicode(Unicode - Unicode Consortium) v spolupráci s mnohými lídrami IT priemyslu (tí, ktorí vyrábajú softvér, ktorí kódujú hardvér, ktorí vytvárajú fonty), ktorí sa zaujímali o vznik univerzálneho kódovania textu.

Prvá variácia vydaná pod záštitou konzorcia Unicode bola UTF 32... Číslo v názve kódovania znamená počet bitov, ktoré sú použité na zakódovanie jedného znaku. 32 bitov sú 4 bajty informácií, ktoré budú potrebné na zakódovanie jedného znaku v novom univerzálnom kódovaní UTF.

Výsledkom je, že ten istý súbor s textom zakódovaným v rozšírenej verzii ASCII a v UTF-32 bude mať v druhom prípade veľkosť (hmotnosť) štyrikrát väčšiu. To je zlé, ale teraz máme možnosť zakódovať počet znakov rovný dvom na tridsaťsekundovú mocninu ( miliardy znakov, ktorá pokryje akúkoľvek skutočne potrebnú hodnotu s kolosálnou maržou).

Mnohé krajiny s jazykmi európskej skupiny však nepotrebovali v kódovaní použiť taký obrovský počet znakov, ale keď sa použilo UTF-32, dostali za nič štvornásobné zvýšenie hmotnosti textových dokumentov a ako výsledkom je zvýšenie objemu internetovej prevádzky a objemu uložených údajov. To je veľa a nikto by si takýto odpad nemohol dovoliť.

V dôsledku vývoja Unicode, UTF-16, ktorý sa ukázal byť taký úspešný, že bol štandardne akceptovaný ako základný priestor pre všetky symboly, ktoré používame. Na zakódovanie jedného znaku používa dva bajty. Pozrime sa, ako tento prípad vyzerá.

V operačnom systéme Windows môžete postupovať podľa cesty "Štart" - "Programy" - "Príslušenstvo" - "Systémové nástroje" - "Mapa symbolov". V dôsledku toho sa otvorí tabuľka s vektorovými formami všetkých písiem nainštalovaných vo vašom systéme. Ak si v časti „Ďalšie parametre“ vyberiete znakovú sadu Unicode, uvidíte pre každé písmo zvlášť celý sortiment v ňom obsiahnutých znakov.

Mimochodom, kliknutím na ktorýkoľvek z nich sa vám zobrazí jeho dvojbajtový kód UTF-16 pozostáva zo štyroch hexadecimálnych číslic:

Koľko znakov je možné zakódovať v UTF-16 so 16 bitmi? 65536 (dva na šestnásť) a práve toto číslo bolo v Unicode brané ako základný priestor. Okrem toho existujú spôsoby, ako s ním zakódovať asi dva milióny znakov, ale boli obmedzené na rozšírený priestor milióna znakov textu.

No ani táto vydarená verzia kódovania Unicode nepriniesla veľké zadosťučinenie tým, ktorí písali napríklad programy len v angličtine, pretože po prechode z rozšírenej verzie ASCII na UTF-16 sa váha dokumentov zdvojnásobila (jedna bajt na jeden znak v Aski a dva bajty na rovnaký znak v UTP-16).

Práve pre spokojnosť všetkých a všetkého v konzorciu Unicode sa rozhodlo prísť kódovanie s premennou dĺžkou... Nazvali to UTF-8. Napriek osmičke v názve má skutočne premenlivú dĺžku, t.j. každý znak v texte možno zakódovať do sekvencie od jedného do šiestich bajtov.

V praxi sa v UTF-8 používa iba rozsah od jedného do štyroch bajtov, pretože za hranicou štyroch bajtov kódu si už nie je možné nič ani len teoreticky predstaviť. Všetky latinské znaky v ňom sú zakódované do jedného bajtu, rovnako ako v starom dobrom ASCII.

Čo je pozoruhodné, v prípade kódovania iba latinskej abecedy aj tie programy, ktoré nerozumejú Unicode, budú stále čítať to, čo je zakódované v UTF-8. Tie. základná časť Asuka práve prešla do tohto duchovného dieťaťa konzorcia Unicode.

Cyrilické znaky v UTF-8 sú kódované v dvoch bajtoch a napríklad gruzínske - v troch bajtoch. Unicode Consortium po vytvorení UTF 16 a 8 vyriešilo hlavný problém - teraz máme v písmach je jeden kódový priestor... A teraz ich výrobcovia môžu naplniť iba vektorovými formami textových symbolov na základe svojich silných stránok a schopností. Teraz dokonca v súpravách.

Vo vyššie uvedenej "Tabuľke znakov" môžete vidieť, že rôzne fonty podporujú rôzny počet znakov. Niektoré fonty bohaté na Unicode môžu byť veľmi ťažké. Teraz sa však nelíšia v tom, že sú vytvorené pre rôzne kódovania, ale v tom, že výrobca písma vyplnil alebo nevyplnil jediný kódový priestor určitými vektorovými formami až do konca.

Krakozyabry namiesto ruských písmen - ako to opraviť

Pozrime sa teraz, ako sa namiesto textu objavia krakozyabra, alebo inými slovami, ako sa zvolí správne kódovanie pre ruský text. V skutočnosti sa nastavuje v programe, v ktorom vytvárate alebo upravujete práve tento text alebo kód pomocou textových fragmentov.

Na úpravu a tvorbu textových súborov ja osobne používam podľa mňa veľmi dobrý. Dokáže však zvýrazniť syntax ešte dobrej stovky programovacích a značkovacích jazykov a má tiež možnosť rozšírenia pomocou doplnkov. Prečítajte si podrobnú recenziu tohto skvelého programu na uvedenom odkaze.

V hornom menu programu Poznámkový blok ++ je položka "Kódovanie", kde budete môcť previesť existujúcu verziu na verziu, ktorá sa štandardne používa na vašom webe:

V prípade stránky na Joomla 1.5 a vyššej, ako aj v prípade blogu na WordPress, aby ste sa vyhli vzniku trhlín, zvoľte možnosť UTF 8 bez kusovníka... Čo je predpona kusovníka?

Faktom je, že keď bolo vyvinuté kódovanie YUTF-16, z nejakého dôvodu sa rozhodli pripojiť k nemu niečo ako schopnosť písať znakový kód, a to v priamom poradí (napríklad 0A15) a naopak (150A). . A aby programy pochopili, v akom poradí čítať kódy, a bol vynájdený kusovník(Byte Order Mark alebo inými slovami podpis), ktorý bol vyjadrený pridaním troch dodatočných bajtov na samom začiatku dokumentov.

V kódovaní UTF-8 konzorcium Unicode neposkytuje žiadny kusovník, a preto pridanie podpisu (tieto najznámejšie ďalšie tri bajty na začiatok dokumentu) jednoducho bráni niektorým programom čítať kód. Preto pri ukladaní súborov do UTP musíme vždy zvoliť možnosť bez kusovníka (bez podpisu). Takže napredujete chráňte sa pred vyliezaním krakozyabrov.

Je pozoruhodné, že niektoré programy v systéme Windows to nedokážu (nemôžu uložiť text v UTP-8 bez kusovníka), napríklad notoricky známy Poznámkový blok Windows. Uloží dokument v UTF-8, ale aj tak pridá na začiatok podpis (tri bajty navyše). Okrem toho budú tieto bajty vždy rovnaké - čítajte kód v priamom poradí. Ale na serveroch môže kvôli tejto maličkosti nastať problém - vyjde krakozyabry.

Takže v žiadnom prípade nepoužívajte bežný poznámkový blok Windows na úpravu dokumentov na vašom webe, ak si neželáte vzhľad krakozyabrov. Najlepšou a najjednoduchšou možnosťou je podľa mňa už spomínaný editor Notepad ++, ktorý nemá prakticky žiadne nevýhody a pozostáva len z výhod.

V programe Poznámkový blok ++ pri výbere kódovania budete môcť previesť text na kódovanie UCS-2, ktoré je vo svojej podstate veľmi blízke štandardu Unicode. Aj v Notepade bude možné kódovať text v ANSI, t.j. vo vzťahu k ruskému jazyku to už bude popísané u nás nad Windows 1251. Odkiaľ táto informácia pochádza?

Je zaregistrované v registri vášho operačného systému Windows – aké kódovanie zvoliť v prípade ANSI, ktoré zvoliť v prípade OEM (pre ruský jazyk to bude CP866). Ak do počítača nainštalujete iný predvolený jazyk, tieto kódovania budú nahradené podobnými kódmi z kategórie ANSI alebo OEM pre rovnaký jazyk.

Po uložení dokumentu v kódovaní, ktoré potrebujete v programe Poznámkový blok ++ alebo otvorení dokumentu z lokality na úpravu, môžete vidieť jeho názov v pravom dolnom rohu editora:

Aby sa zabránilo krakozyabrov, okrem akcií popísaných vyššie bude užitočné napísať informácie o tomto kódovaní do hlavičky zdrojového kódu všetkých stránok webu, aby nedošlo k zámene na serveri alebo lokálnom hostiteľovi.

Vo všeobecnosti sa vo všetkých značkovacích jazykoch hypertextu okrem Html používa špeciálna deklarácia xml, ktorá označuje kódovanie textu.

Pred začatím analýzy kódu bude prehliadač vedieť, ktorá verzia sa používa a ako presne sa majú interpretovať kódy znakov tohto jazyka. Čo je však pozoruhodné, je, že ak uložíte dokument v predvolenom kóde Unicode, potom je možné túto xml deklaráciu vynechať (kódovanie sa bude považovať za UTF-8, ak neexistuje kusovník alebo YUTF-16, ak existuje kusovník).

V prípade Html dokumentu je kódovanie špecifikované Meta prvok, ktorý je napísaný medzi úvodnou a záverečnou značkou Head:

... ...

Tento záznam je úplne odlišný od toho, ktorý bol prijatý v roku, ale je plne v súlade s novým štandardom Html 5, ktorý sa pomaly zavádza, a bude 100% správne pochopený všetkými aktuálne používanými prehliadačmi.

Teoreticky by bol lepšie nastavený prvok Meta označujúci kódovanie Html dokumentu čo najvyššie v hlavičke dokumentu aby v čase stretnutia s prvým znakom v texte, ktorý nie je zo základnej ANSI (ktorý sa číta vždy správne a v akejkoľvek variácii), už mal prehliadač disponovať informáciami o tom, ako interpretovať kódy týchto znakov.

Veľa šťastia! Uvidíme sa čoskoro na stránkach blogu

ďalšie videá si môžete pozrieť na stránke
");">

Možno vás bude zaujímať

Čo sú adresy URL, aký je rozdiel medzi absolútnymi a relatívnymi odkazmi na stránku
OpenServer je moderný lokálny server a príklad jeho použitia na inštaláciu WordPressu do počítača
Čo je to Chmod, aké oprávnenia prideliť súborom a priečinkom (777, 755, 666) a ako to urobiť cez PHP
Vyhľadávanie Yandex na webe a v internetovom obchode

Počítač rozumie procesu svojej transformácie do formy, ktorá umožňuje organizovať pohodlnejší prenos, ukladanie alebo automatické spracovanie týchto údajov. Na tento účel sa používajú rôzne tabuľky. Kódovanie ASCII je prvý systém vyvinutý v Spojených štátoch na prácu s textom v anglickom jazyku, ktorý sa následne rozšíril po celom svete. Nasledujúci článok je venovaný jeho popisu, vlastnostiam, vlastnostiam a ďalšiemu použitiu.

Zobrazenie a ukladanie informácií v počítači

Symboly na monitore počítača alebo ten či onen mobilný digitálny prístroj sú tvorené na základe súborov vektorových foriem všetkých druhov znakov a kódu, ktorý vám umožňuje nájsť medzi nimi symbol, ktorý je potrebné vložiť na správne miesto. Je to séria bitov. Každý znak teda musí jednoznačne zodpovedať množine núl a jednotiek, ktoré stoja v špecifickom, jedinečnom poradí.

Ako to všetko začalo

Historicky prvé počítače boli v angličtine. Na zakódovanie symbolickej informácie v nich stačilo použiť iba 7 bitov pamäte, pričom na tento účel bol pridelený 1 bajt, pozostávajúci z 8 bitov. Počet znakov, ktorým počítač rozumel, sa v tomto prípade rovnal 128. Počet takýchto znakov zahŕňal anglickú abecedu s jej interpunkčnými znamienkami, číslami a niektorými špeciálnymi znakmi. Sedembitové kódovanie v anglickom jazyku s príslušnou tabuľkou (kódovou stránkou), vyvinuté v roku 1963, dostalo názov American Standard Code for Information Interchange. Zvyčajne sa na jeho označenie používala skratka „ASCII encoding“ a používa sa dodnes.

Prechod k viacjazyčnosti

Postupom času sa počítače začali vo veľkej miere používať aj v neanglicky hovoriacich krajinách. V tejto súvislosti vznikla potreba kódovania, ktoré by umožňovalo používanie národných jazykov. Bolo rozhodnuté znovu nevynájsť koleso a ako základ použiť ASCII. Tabuľka kódovania v novom vydaní sa výrazne rozšírila. Použitie 8. bitu umožnilo preložiť do počítačového jazyka 256 znakov.

Popis

Kódovanie ASCII má tabuľku, ktorá je rozdelená na 2 časti. Len prvá polovica sa považuje za všeobecne uznávaný medzinárodný štandard. Obsahuje:

  • Znaky s radovými číslami od 0 do 31, kódované postupnosťami od 00000000 do 00011111. Sú vyhradené pre riadiace znaky, ktoré riadia proces zobrazovania textu na obrazovke alebo tlačiarni, vydávania zvukového signálu atď.
  • Znaky s NN v tabuľke od 32 do 127, kódované sekvenciami od 00100000 do 01111111, tvoria štandardnú časť tabuľky. Patria sem medzera (N 32), písmená latinskej abecedy (malé a veľké), desaťmiestne čísla od 0 do 9, interpunkčné znamienka, zátvorky rôznych štýlov a iné symboly.
  • Znaky s poradovými číslami od 128 do 255, zakódované postupnosťami od 10000000 do 11111111. Patria sem písmená národných abecied iných ako latinka. Práve táto alternatívna časť tabuľky sa používa v kódovaní ASCII na prevod ruských znakov do počítačovej podoby.

Niektoré vlastnosti

K zvláštnostiam kódovania ASCII patrí rozdiel medzi písmenami „A“ – „Z“ malých a veľkých písmen len o jeden bit. Táto okolnosť značne zjednodušuje prevod registra, ako aj jeho kontrolu príslušnosti k určenému rozsahu hodnôt. Okrem toho sú všetky písmená v systéme kódovania ASCII reprezentované vlastnými poradovými číslami v abecede, ktoré sú zapísané 5 číslicami v binárnom zápise, pred ktorými sú 011 2 pre malé písmená a 010 2 pre veľké písmená.

Medzi vlastnosti kódovania ASCII možno považovať zobrazenie 10 číslic - "0" - "9". V druhom číselnom systéme začínajú 00112 a končia 2 číslami. Napríklad 0101 2 je ekvivalentné desiatkovej päťke, takže znak „5“ sa zapíše ako 0011 01012. Na základe toho môžete jednoducho previesť BCD na reťazec ASCII pridaním 00112 ku každému kúsku naľavo.

"Unicode"

Ako viete, na zobrazenie textov v jazykoch skupiny juhovýchodnej Ázie sú potrebné tisíce znakov. Takýto počet z nich nie je v žiadnom prípade opísaný v jednom byte informácií, takže ani rozšírené verzie ASCII už nedokázali uspokojiť zvýšené potreby používateľov z rôznych krajín.

Vznikla tak potreba vytvoriť univerzálne kódovanie textu, ktoré vyvinulo konzorcium Unicode v spolupráci s mnohými lídrami globálneho IT priemyslu. Jeho špecialisti vytvorili systém UTF 32. V ňom bolo na kódovanie 1 znaku alokovaných 32 bitov, ktoré tvorili 4 bajty informácie. Hlavnou nevýhodou bolo prudké zvýšenie množstva potrebnej pamäte až o 4-násobok, čo prinieslo veľa problémov.

Zároveň pre väčšinu krajín s úradnými jazykmi patriacimi do indoeurópskej skupiny je počet znakov rovný 2 32 viac ako nadbytočný.

V dôsledku ďalšej práce špecialistov z konzorcia Unicode sa objavilo kódovanie UTF-16. Stal sa možnosťou transformácie symbolických informácií, ktorá vyhovovala každému tak z hľadiska množstva potrebnej pamäte, ako aj počtu kódovaných znakov. To je dôvod, prečo bol štandardne akceptovaný UTF-16 a vyžaduje, aby boli pre jeden znak vyhradené 2 bajty.

Aj táto pomerne pokročilá a úspešná verzia „Unicode“ mala určité nevýhody a po prechode z rozšírenej verzie ASCII na UTF-16 zdvojnásobila váhu dokumentu.

V tejto súvislosti sa rozhodlo použiť kódovanie s premennou dĺžkou UTF-8. V tomto prípade je každý znak zdrojového textu zakódovaný sekvenciou s dĺžkou 1 až 6 bajtov.

Vzťah s americkým štandardným kódom pre výmenu informácií

Všetky znaky latinskej abecedy v UTF-8 s premenlivou dĺžkou sú kódované v 1 bajte, ako v systéme kódovania ASCII.

Zvláštnosťou UTP-8 je, že v prípade textu v latinke bez použitia iných znakov vám ho stále umožnia prečítať aj programy, ktoré nerozumejú „Unicode“. Inými slovami, základná časť kódovania textu ASCII je jednoducho zlúčená do nového UTF s premenlivou dĺžkou. Cyrilické znaky v UTP-8 zaberajú 2 bajty a napríklad gruzínske - 3 bajty. Vytvorenie UTF-16 a 8 vyriešilo hlavný problém vytvorenia jednotného kódového priestoru vo fontoch. Odvtedy môžu výrobcovia písiem vyplniť tabuľku len vektorovými formami textových znakov podľa svojich potrieb.

V rôznych operačných systémoch sú preferované rôzne kódovania. Aby bolo možné čítať a upravovať texty napísané v inom kódovaní, používajú sa programy na konverziu ruského textu. Niektoré textové editory obsahujú vstavané transkodéry a umožňujú vám čítať text bez ohľadu na kódovanie.

Teraz viete, koľko znakov je v ASCII a ako a prečo bol vyvinutý. Samozrejme, dnes je najrozšírenejším štandardom na svete „Unicode“. Netreba však zabúdať, že bol vytvorený na báze ASCII, preto treba oceniť prínos jeho vývojárov do oblasti IT.