Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • OS
  • Asuka sto je gotov. ASCII (američki standardni kod za razmjenu informacija) kodiranje - osnovno kodiranje teksta za latinicu

Asuka sto je gotov. ASCII (američki standardni kod za razmjenu informacija) kodiranje - osnovno kodiranje teksta za latinicu

Pozdrav dragi čitaoci blog stranice. Danas ćemo razgovarati s vama o tome odakle dolaze krakozyabri na web-mjestu iu programima, koja kodiranja teksta postoje i koja se trebaju koristiti. Pogledajmo pobliže povijest njihovog razvoja, počevši od osnovnog ASCII-a, kao i njegovih proširenih verzija CP866, KOI8-R, Windows 1251 pa do modernih kodiranja Unicode konzorcija UTF 16 i 8.

Nekome se ova informacija može činiti suvišnom, ali znate koliko pitanja dobijam u vezi s ispuzanim krakozjabrima (nečitljivim skupom znakova). Sada ću imati priliku uputiti sve na tekst ovog članka i samostalno pronaći svoje dovratnike. Pa, pripremite se da upijete informacije i pokušajte pratiti priču.

ASCII - osnovno kodiranje teksta za latinično pismo

Razvoj kodiranja teksta odvijao se istovremeno sa formiranjem IT industrije, a za to vrijeme uspjeli su pretrpjeti dosta promjena. Istorijski gledano, sve je počelo sa EBCDIC-om, koji u ruskom izgovoru nije bio eufoničan, koji je omogućio kodiranje slova latinice, arapskih brojeva i interpunkcijskih znakova kontrolnim znakovima.

Ali ipak, početna tačka za razvoj modernog kodiranja teksta je poznato ASCII(Američki standardni kod za razmjenu informacija, koji se na ruskom obično izgovara kao "aski"). Opisuje prvih 128 znakova koje najčešće koriste korisnici engleskog govornog područja - latinična slova, arapski brojevi i znakovi interpunkcije.

Čak je i ovih 128 znakova opisanih u ASCII-u uključivalo neke uslužne simbole kao što su zagrade, heš linije, zvjezdice itd. Zapravo, i sami ih možete vidjeti:

Upravo je ovih 128 znakova iz originalne ASCII verzije postalo standard, a u bilo kojem drugom kodiranju ćete ih sigurno susresti i oni će stajati tim redoslijedom.

Ali činjenica je da je uz pomoć jednog bajta informacija moguće kodirati ne 128, već čak 256 različitih vrijednosti (dva na stepen osam jednako je 256), dakle, nakon osnovne verzije Asuke , pojavio se čitav niz proširena ASCII kodiranja, u kojem je, pored 128 osnovnih znakova, bilo moguće kodirati simbole nacionalnog kodiranja (na primjer, ruski).

Ovdje, možda, vrijedi reći nešto više o sistemima brojeva koji se koriste u opisu. Prvo, kao što svi znate, kompjuter radi samo sa brojevima u binarnom sistemu, odnosno sa nulama i jedinicama ("Boolean algebra", ako je neko išao na fakultet ili školu). , od kojih je svaki 2 u potenciji, počevši od nule, pa do dva u sedmom:

Nije teško shvatiti da u takvoj konstrukciji može postojati samo 256 mogućih kombinacija nula i jedinica, a broj iz binarnog sistema u decimalni je vrlo jednostavno pretvoriti. Samo treba da saberete sve stepene dva iznad kojih ima jedan.

U našem primjeru, ovo je 1 (2 na nulti stepen) plus 8 (dva na stepen 3), plus 32 (dva na peti stepen), plus 64 (na šesti), plus 128 (na sedmi). Ukupan broj dobija 233 u decimalnom zapisu. Kao što vidite, sve je vrlo jednostavno.

Ali ako pažljivo pogledate tabelu sa ASCII znakovima, vidjet ćete da su predstavljeni u heksadecimalnom kodiranju. Na primjer, zvjezdica odgovara heksadecimalnom broju 2A u Asuki. Vjerovatno znate da se u heksadecimalnom brojevnom sistemu, pored arapskih brojeva, koriste i latinična slova od A (znači deset) do F (znači petnaest).

Pa, za pretvoriti binarni broj u heksadecimalni pribjegavajte sljedećoj jednostavnoj i intuitivnoj metodi. Svaki bajt informacija je podijeljen na dva dijela od četiri bita, kao što je prikazano na gornjoj slici. To. u svakom polubajtu, samo šesnaest vrijednosti (dvije na četvrti stepen) može biti kodirano u binarnom obliku, što se lako može predstaviti kao heksadecimalni broj.

Štaviše, u lijevoj polovini bajta bit će potrebno ponovo brojati stepene počevši od nule, a ne kao što je prikazano na snimku ekrana. Kao rezultat, nekim jednostavnim proračunima dobijamo da je broj E9 kodiran na snimku ekrana. Nadam se da su vam tok mog razmišljanja i rješenje ove zagonetke bili jasni. Pa, hajde sada da nastavimo, zapravo, o kodiranju teksta.

Proširene verzije Asuke - CP866 i KOI8-R kodiranja sa pseudografijom

Dakle, počeli smo da pričamo o ASCII-u, koji je bio, takoreći, polazna tačka za razvoj svih modernih kodiranja (Windows 1251, Unicode, UTF 8).

U početku je sadržavao samo 128 znakova latinične abecede, arapske brojeve i još nešto, ali u proširenoj verziji postalo je moguće koristiti svih 256 vrijednosti koje se mogu kodirati u jednom bajtu informacije. One. postalo je moguće dodati simbole slova vašeg jezika u Aski.

Ovdje će biti potrebno još jednom skrenuti pažnju da razjasnimo - zašto su nam uopšte potrebna kodiranja tekstove i zašto je to toliko važno. Simboli na ekranu vašeg računara formiraju se na osnovu dvije stvari - skupova vektorskih formi (reprezentacija) svih vrsta znakova (oni su u ko datotekama) i koda koji vam omogućava da izvučete ovaj skup vektorskih formi (fajl fonta) upravo onaj simbol koji će trebati biti umetnut na pravo mjesto.

Jasno je da su sami fontovi odgovorni za vektorske forme, ali su operativni sistem i programi koji se u njemu koriste odgovorni za kodiranje. One. bilo koji tekst na vašem računaru će biti skup bajtova, od kojih svaki kodira samo jedan karakter ovog teksta.

Program koji ovaj tekst prikazuje na ekranu (uređivač teksta, pretraživač itd.), prilikom raščlanjivanja koda, čita kodiranje sljedećeg znaka i traži odgovarajući vektorski oblik u potrebnoj datoteci fonta, koji je povezan za prikaz ovog tekstualni dokument. Sve je jednostavno i otrcano.

To znači da da bismo kodirali bilo koji znak koji nam je potreban (na primjer, iz nacionalnog alfabeta), moraju biti ispunjena dva uslova - vektorski oblik ovog znaka mora biti u fontu koji se koristi i ovaj znak može biti kodiran u proširenim ASCII kodovima u jedan bajt. Stoga postoji čitava gomila takvih opcija. Postoji nekoliko varijanti proširene Asuke samo za kodiranje znakova ruskog jezika.

Na primjer, izvorno se pojavio CP866, u kojem je bilo moguće koristiti znakove ruskog alfabeta i to je bila proširena verzija ASCII-a.

One. njen gornji dio se u potpunosti poklapao sa osnovnom verzijom Asuke (128 latiničnih znakova, brojeva i bilo kakvog sranja), koja je prikazana na snimku ekrana odmah iznad, ali je već donji dio tabele sa CP866 kodiranjem imao prikaz prikazan na snimku odmah ispod i dozvoljeno je kodiranje još 128 znakova (ruska slova i sve vrste pseudo-grafike):

Vidite, u desnoj koloni brojevi počinju sa 8, jer brojevi od 0 do 7 odnose se na osnovni ASCII dio (pogledajte prvi snimak ekrana). To. rusko slovo "M" u CP866 imaće kod 9C (nalazi se na preseku odgovarajuće linije sa 9 i kolone sa brojem C u heksadecimalnom zapisu), koji se može napisati u jednom bajtu informacije, i ako postoji odgovarajući font sa ruskim znakovima, ovo slovo će bez problema biti prikazano u tekstu.

Odakle taj iznos? pseudografija u CP866? Poenta je da je ovo kodiranje za ruski tekst razvijeno još u tim krznenim godinama, kada nije bilo širenja grafičkih operativnih sistema kao sada. I u Dosu, i sličnim tekstualnim operativnim sistemima, pseudografika je omogućila da se na neki način diverzificira dizajn tekstova i stoga CP866 i svi ostali njegovi vršnjaci iz kategorije proširenih verzija Asuke obiluju njome.

CP866 je distribuirao IBM, ali osim toga, razvijeno je nekoliko kodiranja za ruske znakove, na primjer, ovaj tip (prošireni ASCII) se može pripisati KOI8-R:

Princip njegovog rada ostaje isti kao i kod CP866 opisanog malo ranije - svaki znak teksta je kodiran s jednim bajtom. Snimak ekrana prikazuje drugu polovinu tabele KOI8-R, od prva polovina je u potpunosti u skladu sa osnovnom Asukom, koja je prikazana na prvom snimku ekrana u ovom članku.

Među karakteristikama KOI8-R kodiranja, može se primijetiti da ruska slova u njegovoj tablici nisu po abecednom redu, kao što je, na primjer, bila u CP866.

Ako pogledate prvi snimak ekrana (osnovnog dijela, koji je uključen u sva proširena kodiranja), primijetit ćete da se u KOI8-R ruska slova nalaze u istim ćelijama tabele kao i slova suglasnika latinice sa njima iz prvog dela tabele. Ovo je učinjeno radi pogodnosti prebacivanja sa ruskih znakova na latinične znakove odbacivanjem samo jednog bita (dva na sedmu potenciju ili 128).

Windows 1251 - moderna verzija ASCII i zašto krakozyabry izlaze

Dalji razvoj kodiranja teksta bio je povezan s činjenicom da su grafički operativni sistemi postajali sve popularniji i da je vremenom nestala potreba za korištenjem pseudografike u njima. Kao rezultat toga, nastala je cijela grupa, koje su, u suštini, još uvijek bile proširene verzije Asuke (jedan znak teksta je kodiran sa samo jednim bajtom informacija), ali već bez upotrebe pseudo-grafičkih znakova.

Pripadali su takozvanim ANSI kodovima, koje je razvio Američki institut za standarde. U običnom govoru, naziv ćirilice i dalje se koristio za verziju s podrškom za ruski jezik. Primjer za to može poslužiti.

Povoljno se razlikovao od ranije korištenih CP866 i KOI8-R po tome što su mjesto pseudografskih simbola u njemu zauzeli nedostajući simboli ruske tipografije (osim znaka akcenta), kao i simboli koji se koriste u slavenskim jezicima blisko ruskom (ukrajinskom, bjeloruskom, itd.) ):

Zbog tolikog obilja kodiranja ruskog jezika, proizvođači fontova i softveri su stalno imali glavobolje, a mi, dragi čitaoci, često smo izvlačili one ozloglašene krakozyabry kada je došlo do zabune sa verzijom korištenom u tekstu.

Vrlo često su izlazili prilikom slanja i primanja poruka e-poštom, što je podrazumijevalo kreiranje vrlo složenih tabela konverzije, koje, zapravo, nisu mogle suštinski riješiti ovaj problem, a često su korisnici za korespondenciju izbjegavali zloglasne krakozjabe prilikom korištenja Ruski kodiranja poput CP866, KOI8-R ili Windows 1251.

U stvari, krakozyabry, koji je izašao umjesto ruskog teksta, bio je rezultat pogrešne upotrebe kodiranja ovog jezika, koje nije odgovaralo onom u kojem je tekstualna poruka izvorno kodirana.

Na primjer, ako pokušamo prikazati znakove kodirane sa CP866 pomoću tablice kodova Windows 1251, tada će se pojaviti ti isti krakozyabry (besmisleni skup znakova) koji će u potpunosti zamijeniti tekst poruke.

Slična situacija se vrlo često dešava kada, na forumima ili blogovima, kada je tekst sa ruskim znakovima greškom sačuvan u pogrešnom kodiranju koje se podrazumevano koristi na sajtu, ili u pogrešnom uređivaču teksta koji dodaje gagging kodu koji nije vidljiv golim okom.

Na kraju, mnogi su bili umorni od ove situacije s puno kodiranja i stalno nastajajućih krakozjabera, postojali su preduslovi za stvaranje nove univerzalne varijacije koja bi zamijenila sve postojeće i konačno riješila korijenski problem pojave nečitljivih tekstova . Osim toga, postojao je problem jezika poput kineskog, gdje je znakova jezika bilo mnogo više od 256.

Unicode - univerzalna UTF kodiranja 8, 16 i 32

Ove hiljade znakova iz grupe jezika jugoistočne Azije ne mogu se opisati u jednom bajtu informacija, koji je bio dodijeljen za kodiranje znakova u proširenim verzijama ASCII-a. Kao rezultat, stvoren je konzorcij tzv Unicode(Unicode - Unicode Consortium) uz saradnju mnogih lidera IT industrije (onih koji proizvode softver, koji kodiraju hardver, koji kreiraju fontove) koji su bili zainteresovani za pojavu univerzalnog kodiranja teksta.

Prva varijacija objavljena pod okriljem Unicode konzorcija je bila UTF 32... Broj u nazivu kodiranja označava broj bitova koji se koriste za kodiranje jednog znaka. 32 bita su 4 bajta informacija koje će biti potrebne za kodiranje jednog pojedinačnog znaka u novom univerzalnom UTF kodiranju.

Kao rezultat toga, isti fajl sa tekstom kodiranim u proširenoj verziji ASCII-a iu UTF-32, u drugom slučaju, imaće četiri puta veću veličinu (težinu). Ovo je loše, ali sada imamo priliku da kodiramo broj znakova jednak dva na stepen od trideset druge ( milijarde znakova, koji će pokriti svaku zaista potrebnu vrijednost sa kolosalnom marginom).

Ali mnoge zemlje s jezicima europske grupe nisu morale koristiti tako ogroman broj znakova u kodiranju, ali kada se koristio UTF-32, dobile su četiri puta povećanje težine tekstualnih dokumenata za ništa, a kao rezultat, povećanje obima internet saobraćaja i količine pohranjenih podataka. Ovo je mnogo, i niko si nije mogao priuštiti takav otpad.

Kao rezultat razvoja Unicode-a, UTF-16, koji se pokazao toliko uspješnim da je standardno prihvaćen kao osnovni prostor za sve simbole koje koristimo. Koristi dva bajta za kodiranje jednog znaka. Da vidimo kako izgleda ovaj slučaj.

U operativnom sistemu Windows možete pratiti putanju "Start" - "Programi" - "Dodatna oprema" - "Sistemski alati" - "Mapa simbola". Kao rezultat, otvorit će se tabela sa vektorskim oblicima svih fontova instaliranih u vašem sistemu. Ako odaberete Unicode skup znakova u "Dodatni parametri", moći ćete vidjeti za svaki font posebno cijeli asortiman znakova koji su u njemu uključeni.

Usput, klikom na bilo koji od njih, možete vidjeti njegov dvobajt UTF-16 kod koji se sastoji od četiri heksadecimalne cifre:

Koliko znakova se može kodirati u UTF-16 sa 16 bita? 65536 (dva na stepen šesnaest), a upravo je taj broj uzet kao osnovni prostor u Unicode-u. Osim toga, postoje načini za kodiranje sa njim i oko dva miliona karaktera, ali su bili ograničeni na prošireni prostor od milion karaktera teksta.

Ali čak ni ova uspješna verzija Unicode kodiranja nije donijela veliko zadovoljstvo onima koji su, na primjer, pisali programe samo na engleskom, jer se nakon prelaska sa proširene verzije ASCII na UTF-16 težina dokumenata udvostručila (jedan bajt po jednom karakteru u Aski i dva bajta za isti znak u UTP-16).

Upravo na zadovoljstvo svih i svih u Unicode konzorcijumu odlučeno je da se osmisli kodiranje promenljive dužine... Nazvali su ga UTF-8. Uprkos broju osam u nazivu, on zaista ima promjenjivu dužinu, tj. svaki znak u tekstu se može kodirati u niz od jednog do šest bajtova.

U praksi se u UTF-8 koristi samo raspon od jednog do četiri bajta, jer osim četiri bajta koda ništa nije moguće čak ni teoretski zamisliti. Svi latinični znakovi u njemu su kodirani u jedan bajt, baš kao u dobrom starom ASCII-u.

Ono što je vrijedno pažnje, u slučaju kodiranja samo latiničnog pisma, čak i oni programi koji ne razumiju Unicode će i dalje čitati ono što je kodirano u UTF-8. One. osnovni dio Asuke upravo je prešao u ovu zamisao Unicode konzorcijuma.

Ćirilični znakovi u UTF-8 kodirani su u dva bajta, a, na primjer, gruzijski - u tri bajta. Unicode konzorcij nakon kreiranja UTF-a 16 i 8 riješio je glavni problem - sada imamo postoji jedan kodni prostor u fontovima... A sada ih njihovi proizvođači mogu ispuniti samo vektorskim oblicima tekstualnih simbola na osnovu svojih snaga i mogućnosti. Sada čak iu setovima.

U gornjoj "Tablici znakova" možete vidjeti da različiti fontovi podržavaju različit broj znakova. Neki fontovi bogati Unicode-om mogu biti veoma teški. Ali sada se ne razlikuju po tome što su kreirani za različita kodiranja, već po tome što je proizvođač fontova popunio ili nije popunio niti jedan kodni prostor određenim vektorskim oblicima do kraja.

Krakozyabry umjesto ruskih slova - kako popraviti

Pogledajmo sada kako se krakozjabre pojavljuju umjesto teksta, ili, drugim riječima, kako se bira ispravno kodiranje za ruski tekst. Zapravo, to je postavljeno u programu u kojem kreirate ili uređujete upravo ovaj tekst, odnosno kod koristeći fragmente teksta.

Za uređivanje i kreiranje tekstualnih fajlova, ja lično koristim jedan veoma dobar, po mom mišljenju. Međutim, može naglasiti sintaksu još dobrih stotinu programskih i markup jezika, a također ima mogućnost proširenja pomoću dodataka. Pročitajte detaljnu recenziju ovog sjajnog programa na navedenom linku.

U gornjem meniju Notepad ++ nalazi se stavka "Kodiranja", gde ćete moći da konvertujete postojeću verziju u onu koja se podrazumevano koristi na vašem sajtu:

U slučaju stranice na Joomli 1.5 i novijoj, kao i u slučaju bloga na WordPress-u, kako biste izbjegli pojavu pukotina, odaberite opciju UTF 8 bez BOM-a... Šta je prefiks BOM?

Činjenica je da su, kada je razvijeno YUTF-16 kodiranje, iz nekog razloga odlučili da mu pridruže nešto kao što je mogućnost pisanja koda znakova, kako u direktnom nizu (na primjer, 0A15) tako iu obrnutom (150A) . A da bi programi razumjeli kojim redoslijedom čitati kodove, i izmišljen je BOM(Oznaka reda bajtova ili, drugim riječima, potpis), što je izraženo dodavanjem tri dodatna bajta na samom početku dokumenata.

U UTF-8 kodiranju, u Unicode konzorcijumu nije predviđena BOM, pa stoga dodavanje potpisa (ova najozloglašenija dodatna tri bajta na početak dokumenta) jednostavno sprečava neke programe da čitaju kod. Stoga, kada snimamo datoteke u UTP, uvijek moramo odabrati opciju bez BOM-a (bez potpisa). Dakle, napreduj zaštitite se od puzanja krakozyabrov.

Ono što je vrijedno pažnje je da neki programi u Windows-u to ne mogu (ne mogu sačuvati tekst u UTP-8 bez BOM-a), na primjer, ozloglašeni Windows Notepad. Dokument sprema u UTF-8, ali i dalje dodaje potpis (tri dodatna bajta) na početak. Štaviše, ovi bajtovi će uvijek biti isti - čitajte kod u direktnom nizu. Ali na serverima, zbog ove sitnice, može nastati problem - krakozyabry će izaći.

Dakle, nikako nemojte koristiti običan Windows notepad za uređivanje dokumenata vašeg sajta, ako ne želite izgled krakozjabrova. Najbolja i najjednostavnija opcija, mislim, je već spomenuti uređivač Notepad ++, koji praktički nema nedostataka i sastoji se samo od prednosti.

U Notepad ++, kada birate kodiranje, moći ćete da konvertujete tekst u UCS-2 kodiranje, što je inherentno vrlo blisko Unicode standardu. Također u Notepad-u će biti moguće kodirati tekst u ANSI, tj. u odnosu na ruski jezik to ćemo već opisati odmah iznad Windowsa 1251. Odakle dolazi ova informacija?

Registriran je u registru vašeg Windows operativnog sistema - koje kodiranje odabrati u slučaju ANSI, koje odabrati u slučaju OEM (za ruski jezik će to biti CP866). Ako instalirate drugi podrazumevani jezik na svom računaru, onda će ovi kodovi biti zamenjeni sličnim iz ANSI ili OEM kategorije za isti jezik.

Nakon što snimite dokument u kodiranju koji vam je potreban u Notepad ++ ili otvorite dokument sa stranice za uređivanje, možete vidjeti njegov naziv u donjem desnom kutu uređivača:

Da biste izbjegli krakozyabrov, pored gore opisanih radnji, bit će korisno napisati informacije o ovom kodiranju u zaglavlju izvornog koda svih stranica web-mjesta kako ne bi došlo do zabune na serveru ili lokalnom hostu.

Općenito, u svim jezicima za označavanje hiperteksta osim Html-a, koristi se posebna xml deklaracija, koja označava kodiranje teksta.

Prije nego počne raščlanjivati ​​kod, pretraživač će znati koja se verzija koristi i kako tačno treba tumačiti znakovne kodove ovog jezika. Ali ono što je vredno pažnje je da ako sačuvate dokument u podrazumevanom unicode-u, onda se ova xml deklaracija može izostaviti (kodiranje će se smatrati UTF-8 ako nema BOM ili YUTF-16 ako postoji BOM).

U slučaju HTML dokumenta, specificirano je kodiranje Meta element, koji je napisan između otvaranja i zatvaranja Head tagova:

... ...

Ovaj unos se dosta razlikuje od onog usvojenog, ali je u potpunosti usklađen sa novim Html 5 standardom koji se polako uvodi i biće 100% ispravno shvaćen od strane svih trenutno korištenih pretraživača.

U teoriji, Meta element koji ukazuje na kodiranje Html dokumenta bi bio bolje postavljen što je više moguće u zaglavlju dokumenta tako da bi u trenutku susreta sa prvim znakom u tekstu koji nije iz osnovnog ANSI (koji se uvijek čita ispravno i u bilo kojoj varijaciji) pretraživač već trebao imati informaciju o tome kako tumačiti kodove ovih znakova.

Sretno ti! Vidimo se uskoro na stranicama blog stranice

možete pogledati više video zapisa ako odete na
");">

Možda ste zainteresovani

Šta su URL-ovi, koja je razlika između apsolutnih i relativnih linkova za sajt
OpenServer je moderan lokalni server i primjer njegove upotrebe za instaliranje WordPress-a na računar
Šta je Chmod, koje dozvole dodijeliti datotekama i mapama (777, 755, 666) i kako to učiniti putem PHP-a
Yandex pretraga na web lokaciji i online trgovini

Kao što znate, računar pohranjuje informacije u binarnom obliku, predstavljajući ih kao niz jedinica i nula. Za prevođenje informacija u oblik koji je prikladan za ljudsku percepciju, svaki jedinstveni niz brojeva zamjenjuje se odgovarajućim simbolom kada se prikaže.

Jedan od sistema za korelaciju binarnih kodova sa ispisnim i kontrolnim znakovima je

Na sadašnjem nivou razvoja računarske tehnologije, korisnik nije obavezan da zna šifru svakog specifičnog simbola. Međutim, opće razumijevanje načina na koji se provodi kodiranje je izuzetno korisno, a za neke kategorije stručnjaka čak i neophodno.

ASCII kreiranje

U svom izvornom obliku, kodiranje je razvijeno 1963. godine, a zatim dva puta ažurirano u roku od 25 godina.

U originalnoj verziji, ASCII tablica znakova je sadržavala 128 znakova, kasnije se pojavila proširena verzija, gdje je prvih 128 znakova sačuvano, a prethodno odsutni znakovi su dodijeljeni kodovima sa uključenim osmim bitom.

Dugi niz godina ovo kodiranje je bilo najpopularnije na svijetu. 2006. godine latinica 1252 zauzima vodeću poziciju, a od kraja 2007. do danas, Unicode čvrsto drži vodeću poziciju.

ASCII kompjuterska reprezentacija

Svaki ASCII znak ima svoj vlastiti kod od 8 znakova koji predstavljaju nulu ili jedan. Minimalni broj u takvoj reprezentaciji je nula (osam nula u binarnom sistemu), što je kod prvog elementa u tabeli.

Dva koda u tabeli bila su rezervirana za prebacivanje između standardnog US-ASCII i njegove nacionalne verzije.

Nakon što je ASCII počeo uključivati ​​ne 128, već 256 znakova, postala je raširena varijanta kodiranja, u kojoj je originalna verzija tablice sačuvana u prvih 128 kodova sa nultim 8. bitom. U gornjoj polovini tabele (pozicije 128-255) zadržani su znaci nacionalnog pisma.

Korisnik ne mora direktno znati ASCII znakovne kodove. Obično je dovoljno da programer softvera zna broj elementa u tabeli kako bi izračunao njegov kod koristeći binarni sistem, ako je potrebno.

ruski jezik

Nakon razvoja kodiranja za skandinavske jezike, kineski, korejski, grčki, itd. početkom 70-ih, Sovjetski Savez je također počeo stvarati svoju verziju. Ubrzo je razvijena verzija 8-bitnog kodiranja pod nazivom KOI8, koja čuva prvih 128 ASCII znakovnih kodova i dodjeljuje isti broj pozicija za slova nacionalne abecede i dodatne znakove.

Prije uvođenja Unicode-a, KOI8 je dominirao ruskim segmentom interneta. Postojale su opcije kodiranja i za rusko i za ukrajinsko pismo.

ASCII problemi

Budući da broj elemenata čak ni u proširenoj tabeli nije prelazio 256, nije postojala mogućnost smještaja nekoliko različitih skripti u jednom kodiranju. Devedesetih godina u Runetu se pojavio problem "crocozyabra", kada su tekstovi ukucani ruskim ASCII znakovima bili pogrešno prikazani.

Problem je bio u tome što se kodovi različitih ASCII varijanti nisu podudarali. Podsjetimo da su pozicije 128-255 mogle sadržavati različite znakove, a prilikom promjene jednog ćiriličnog kodiranja u drugo, sva slova teksta su zamijenjena drugim s identičnim brojem u drugoj verziji kodiranja.

Trenutna drzava

Sa pojavom Unicode-a, popularnost ASCII-a je naglo opala.

Razlog tome leži u činjenici da je novo kodiranje omogućilo prilagođavanje znakova gotovo svih pisanih jezika. U ovom slučaju, prvih 128 ASCII znakova odgovara istim znakovima u Unicode-u.

Godine 2000. ASCII je bio najpopularniji kodiranje na Internetu i korišten je na 60% web stranica koje je indeksirao Google. Do 2012. godine udio takvih stranica je pao na 17%, a Unicode (UTF-8) je zauzeo mjesto najpopularnijeg kodiranja.

Dakle, ASCII je važan dio povijesti informatičke tehnologije, ali se njegova upotreba u budućnosti smatra neperspektivnom.

Unicode (na engleskom Unicode) je standard za kodiranje znakova. Jednostavno rečeno, ovo je tabela korespondencije tekstualnih znakova (, slova, interpunkcijski elementi) binarni kodovi. Računar razumije samo niz nula i jedinica. Da bi znao šta tačno treba da prikaže na ekranu, potrebno je svakom karakteru dodeliti jedinstveni broj. Osamdesetih godina, znakovi su bili kodirani u jednom bajtu, odnosno u osam bita (svaki bit je 0 ili 1). Tako se pokazalo da jedna tabela (aka kodiranje ili skup) može sadržati samo 256 karaktera. Ovo možda neće biti dovoljno ni za jedan jezik. Stoga se pojavilo mnogo različitih kodiranja, zabuna s kojima je često dovodila do činjenice da se umjesto čitljivog teksta na ekranu pojavio neki čudan krakozyabry. Bio je potreban jedinstven standard, koji je postao Unicode. Najčešće korišteno kodiranje je UTF-8 (Unicode Transformation Format), koji koristi 1 do 4 bajta za prikaz znaka.

Simboli

Znakovi u Unicode tabelama su numerisani heksadecimalnim brojevima. Na primjer, ćirilično veliko slovo M označeno je U + 041C. To znači da se nalazi na raskrsnici linije 041 i kolone C. Možete je jednostavno kopirati, a zatim negdje zalijepiti. Da ne biste preturali po višekilometarskoj listi, trebali biste koristiti pretragu. Kada odete na stranicu sa simbolima, vidjet ćete njen broj u Unicodeu i način na koji je nacrtan različitim fontovima. Također možete ubaciti sam znak u traku za pretraživanje, čak i ako je umjesto toga nacrtan kvadrat, barem da biste saznali o čemu se radi. Takođe, na ovom sajtu postoje posebni (i - nasumični) setovi ikona iste vrste, sakupljeni iz različitih sekcija, radi lakšeg korišćenja.

Unicode standard je međunarodni. Uključuje znakove iz gotovo svih pisama na svijetu. Uključujući i one koji se više ne koriste. Egipatski hijeroglifi, germanske rune, majansko pismo, klinopis i abecede drevnih država. Prikazana je i oznaka mjera i težina, notni zapisi, matematički pojmovi.

Sam Unicode konzorcij ne izmišlja nove znakove. One ikone koje nađu svoju primjenu u društvu dodaju se na tabele. Na primjer, znak rublje se aktivno koristio šest godina prije nego što je dodat u Unicode. Emoji piktogrami (emotikoni) su također prvi put bili široko korišteni u Japanu i prije nego što su uključeni u kodiranje. Ali zaštitni znakovi i logotipi kompanije se u principu ne dodaju. Čak i uobičajena kao Apple apple ili Windows zastava. Danas je u verziji 8.0 kodirano oko 120 hiljada znakova.

Preklapanje simbola

BS (backspace) znak omogućava štampaču da prepiše jedan znak. U ASCII-u je predviđeno dodavanje dijakritičkih znakova slovima na ovaj način, na primjer:

  • a BS "→ á
  • a BS `→ à
  • a BS ^ → â
  • o BS / → ø
  • c BS, → ç
  • n BS ~ → ñ

Bilješka: u starim fontovima, apostrof "je nacrtan sa kosom ulijevo, a tilda ~ je pomaknuta prema gore, tako da samo odgovaraju ulozi akutne i tilde na vrhu.

Ako se isti simbol preloži na znak, onda se postiže efekat podebljanog fonta, a ako se na znak stavi donja crta, onda se dobija podvučeni tekst.

  • a BS a → a
  • a BS _ → a

Bilješka: ovo se koristi, na primjer, u sistemu pomoći za čovjeka.

Nacionalne ASCII varijante

Standard ISO 646 (ECMA-6) pruža mogućnost postavljanja nacionalnih znakova na svoje mjesto @ [ \ ] ^ ` { | } ~ ... Pored ovoga, na mestu # može se smjestiti £ , i na mjestu $ - ¤ ... Ovaj sistem je veoma pogodan za evropske jezike gde je potrebno samo nekoliko dodatnih znakova. ASCII verzija bez nacionalnih znakova naziva se US-ASCII ili "Međunarodna referentna verzija".

Nakon toga, pokazalo se da je zgodnije koristiti 8-bitna kodiranja (kodnih stranica), gdje je donja polovina kodne tablice (0-127) okupirana US-ASCII znakovima, a gornja polovina (128-255) zauzimaju dodatni znakovi, uključujući skup nacionalnih znakova. Dakle, gornja polovina ASCII tabele, prije širokog usvajanja Unicodea, aktivno se koristila za predstavljanje lokaliziranih znakova, slova lokalnog jezika. Nedostatak jedinstvenog standarda za postavljanje ćiriličkih znakova u ASCII tabelu izazvao je mnoge probleme sa kodiranjem (KOI-8, Windows-1251 i drugi). Drugi jezici s nelatinskim pismom također su patili od prisustva nekoliko različitih kodiranja.

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .E .F
0. NUL SOM EOA EOM EQT WRU RU BELL BKSP Ht LF VT FF CR SO SI
1. DC 0 DC 1 DC 2 DC 3 DC 4 ERR SYNC LEM S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7
2.
3.
4. BLANK ! " # $ % & " ( ) * + , - . /
5. 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
6.
7.
8.
9.
A. @ A B C D E F G H I 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. str q r s t u v w x y z ITD DEL

Na onim računarima gdje je minimalna adresabilna jedinica memorije bila 36-bitna riječ, u početku su korišteni 6-bitni znakovi (1 riječ = 6 znakova). Nakon prelaska na ASCII na takvim računarima, počeli su da stavljaju ili 5 sedmobitnih karaktera u jednu reč (1 bit je ostao suvišan), ili 4 devetobitna znaka.

ASCII kodovi se takođe koriste za identifikaciju pritisnutog tastera tokom programiranja. Za standardnu ​​QWERTY tastaturu, tabela kodova izgleda ovako:

Top srodni članci