ASCII

ASCII (skraćenica od „Američki standardni kod za razmenu podataka“ (engl. American Standard Code for Information Interchange), izgovara se „aski“) je skup karaktera i kodna stranica utemeljena na latinskom pismu kakvo koristi engleski jezik i još neki zapadnoevropski jezici. Najčešće se koristi u računarstvu, ali i u komunikacionoj i upravljačkoj opremi u radu sa tekstom. U srpskom jeziku popularno se naziva ošišana latinica (latinica bez kvačica na slovima š, ž, č, ć, đ).

Svaki od ASCII znakova prikazanih ovde jednostavnim bitmapiranim fontom imaju svoje kodne vrednosti, od 89 do 101. Između velikih i malih slova nalaze se šest znakova interpunkcije.

Pregled

Slično drugim kodovima za predstavljanje pisanih znakova, ASCII određuje odnos između skupova bitova i znakova pisanog jezika, i omogućava digitalnim uređajima da međusobno komuniciraju i obrađuju i čuvaju podatke koje sadrže znakove. Znakovni kod ASCII, ili njegovo kompatibilno proširenje (vidi niže), se koristi u gotovo svim računarima, naročito personalnim računarima i radnim stanicama. Preporučeni MIME naziv za ovo kodiranje je „US-ASCII“.

ASCII je, strogo govoreći, sedmobitni kod, što znači da koristi sedam binarnih cifara (u rasponu od 0 do 127 u dekadnom sistemu) za predstavljanje znakovnih podataka. U vreme kada je ASCII bio uveden, mnogi računari su koristili osmobitne grupe (bajtove), ili preciznije oktete) kao najmanju jedinicu za predstavljanje podataka. Osmi bit je bio obično korišćen kao bit parnosti za proveru grešaka u prenosu podataka ili je imao ulogu karakterističnu za dati uređaj. Mašine koje nisu koristile parnost obično su postavljale osmi bit na nulu, mada je bilo i nekih sistema koje su postavljali osmi bit na jedinicu.

ASCII ne propisuje ni na koji način informacije o konceptualnoj strukturi ili izgledu parčeta teksta. To zahteva druge standarde kao što su jezici za označavanje. Konceptualna struktura može se dodati koristeći XML ili HTML a izgled koristeći CSS za relativno jednostavne stvari, SGML za nešto komplikovanije ili PostScript, Display PostScript, ili Teh za napredno podešavanje izgleda teksta i preloma.

ASCII je kao standard prvi put objavilo Američko udruženje za standarde (engl. American Standards Association, ASA) 1963. godine, koja je kasnije promenila ime u ANSI. Postoje razne varijante ASCII-a, ali trenutno najrasprostranjenija je ANSI X3.4-1986, takođe standardizovana kao „ECMA-6, ISO/IEC 646:1991 International Reference Version, ITU-T Recommendation T.50 (09/92)“, i RFC 20. Ugrađena je u svoju najverovatnije najbolju zamenu, unikod, kao prvih 128 kombinacija. Neki računarski stručnjaci smatraju ASCII najuspešnijim softverskim standardom ikad predlaganim.

Istorijski gledano, ASCII se razvio iz telegrafskih kodova i njegova prva komercijalna upotreba je bila kao sedmobitni teleprinterski kod kojeg je proizvodio Servis za podatke Bel. Sistem Bel je imao u planu da koristi šestobitni kod izveden iz koda „Fieldata“ koji je uveo znakove interpunkcije i mala slova u raniji petobitni teleprinterski kod Baudot, ali su se predomislili i pridružili se podkomitetu ANSI-a koji se bavio razvojem ASCII-a. Kod Baudot je služio u slanju i primanju telegrafskih poruka i mnogo toga nasledio iz morzeove azbuke, ali je za razliku od nje svaka jedinica koda bila konstantne dužine. U poređenju sa ranijim telegrafskim kodovima, predloženi kod Sistema Bel i ASCII su bili preuređeni za pogodnije sortiranje i dodate su mogućnosti da se koristi i na drugim uređajima pored teleprintera. Neke mogućnosti ASCII-a, uključujući iskejp sekvence (engl. Escape sequences), su dodate zahvaljujući Bobu Bemeru.

upravljački znakovi ASCII-a

Prva trideset i dva koda u tabeli ASCII-kodova (od 0 do 31 u dekadnom sistemu) su rezervisana za takozvane upravljačke znakove; ovi kodovi praktično ne sadrže nikakve podatke za prikaz, nego upravljaju izlaznim uređajima (npr. štampačima, skenerima, itd.). Tako na primer kod koji ima vrednost 10 predstavlja komandu „novi red“, koja nalaže štampaču da pomeri papir „na gore“ za jedan red, dok kod sa vrednošću 27 simulira pritisak na taster iskejp, lociran u gornjem levom uglu tastature.

Kod 127 (koji nastaje kad svih 7 bitova ima vrednost 1) je još jedan specijalni znak poznat kao „briši“ (engl. delete). Iako je njegova funkcija slična funkcijama ostalih upravljačkih znakova, ovaj znak označava da treba da se „obriše“ odeljak papirne trake, koja je do 1980ih bila još uvek popularan medijum za skladištenje podataka, tako što bi se utisnule sve moguće rupe u papir na odgovarajuću poziciju.

Mnogi upravljački znakovi služe da označe pakete podataka, ili kao komande za upravljanje prenosom podataka (npr. „Postoji li neka stanica?“, „Potvrđujem“, „Ne potvrđujem“, „Početak zaglavlja“, „Početak teksta“, „Kraj teksta“, itd.). Upravljački znakovi iskejp i „zameni“ dozvoljavaju protokolu za prenos podataka da, na primer, označi binarne podatke tako da, ako sadrže bilo kakve podatke koji pripadaju protokolu za prenos, ovi ipak budu obrađeni kao obični podaci.

„Separatorski“ znakovi su trebali da se koriste u sistemima koji koriste magnetne trake, ali su ove ispale sa tržišta pojavom modernijih medijuma.

Upravljački znakovi XON i XOFF se koriste da kontrolišu tok podataka sa nekog brzog uređaja (npr. računara) na neki spor uređaj (npr. štampač) da ne bi došlo do preskakanja i gubljenja podataka.

Rani korisnici ASCII-a su iskoristili određene upravljačke znakove da predstavljaju posebne vrste podataka, kao na primer povratak na početak reda reda, prelazak na početak/kraj bloka itd. Upotrebe su se razlikovale, te je jedan od zadataka pri prevođenju iz jednog formata podataka u drugi obično i pravilno prevođenje ovih specijalnih znakova. Na primer, kontrolni karakter koji predstavlja kraj reda se razlikuje od sistema do sistema. Kada se podaci prebacuju sa jednog sistema na drugi, potrebno je ispravno prepoznati i prevesti ove podatke na odredišnom sistemu.

U binarnom sistemuU dekadnom sistemuU heksadekadnom sistemuSkraćenicaOdštampan prikazPristup na tastaturiIme/značenje
0000 0000000NUL^@Karakter sa vrednošću 0
0000 0001101SOH^APočetak zaglavlja
0000 0010202STX^BPočetak teksta
0000 0011303ETX^CKraj teksta
0000 0100404EOT^DKraj prenosa
0000 0101505ENQ^EZahtev
0000 0110606ACK^FPotvrda prijema
0000 0111707BEL^GZvonce
0000 1000808BS^HBekspejs
0000 1001909HT^IHorizontalni tab
0000 1010100ALF^JZnak za novi red
0000 1011110BVT^KVertikalni tab
0000 1100120CFF^LZnak za novu stranicu
0000 1101130DCR^MPovratak na početak reda
0000 1110140ESO^NIzvlačenje reda
0000 1111150FSI^OUvlačenje reda
0001 00001610DLE^PData Link Escape
0001 00011711DC1^QSignal pomoćnim uređajima 1 (obično paljenje)
0001 00101812DC2^RSignal pomoćnim uređajima 2
0001 00111913DC3^SSignal pomoćnim uređajima 3
0001 01002014DC4^TSignal pomoćnim uređajima 4 (obično gašenje)
0001 01012115NAK^UJavljanje o lošem prijemu
0001 01102216SYN^VPomoćni znak za održavanje sinhronizovanosti
0001 01112317ETB^WKraj prenosnog bloka
0001 10002418CAN^XOtkazivanje
0001 10012519EM^YKraj medijuma
0001 1010261ASUB^ZZamjena
0001 1011271BESC^[ ili ESCIskejp
0001 1100281CFS^\Znak za struktuisanje podataka nivo 4
0001 1101291DGS^[Znak za struktuisanje podataka nivo 3
0001 1110301ERS^^Znak za struktuisanje podataka nivo 2
0001 1111311FUS^_Znak za struktuisanje podataka nivo 1
0111 11111277FDELDEL ili bekspejsBrisanje znaka

Gornja tabela u petoj koloni sadrži znak koji se prikazuje kada se upravljački znak odštampa (umesto interpretira u skladu sa njegovim značenjem); nekim brauzerima je potrebno instalirati dodatne fontove da bi se znak prikazao na pravi način.

Šesta kolona prikazuje uobičajene tastere na tastaturi koje je potrebno pritisnuti da bi se uneli odgovarajući upravljački znakovi. U ovoj koloni, kapica (^) predstavlja taster „Kontrol“ (Ctrl), koji se mora pritisnuti i držati dok se pritiska naredni taster (npr. ^Z znači da se pritisne taster Kontrol i drži dok se pritiska taster Z. Pojedini programi koriste ovu reprezentaciju da prikažu kontrolni karakter na ekranu, u slučaju da ga ne razumeju.

Neki programi za Internet su imali običaj da prevode upravljački znak za brisanje (Delete) u upravljački znak za brisanje unatrag (bekspejs) pri prenosu podataka na server. Ako bi npr. uređivač teksta na serveru prihvatio ovaj karakter i ne bi ga razumio, obično je prikazivao ^H na mestu gde je trebao da obriše prethodni karakter. ^H se zbog toga i danas koristi na duhovit način, npr. „Svakog minuta, rodi se potencijalna naivčina^H^H^H^H^H^H^H^H^H mušterija“.

ASCII znakovi koji se mogu štampati

Kod 32 se koristi za razmak (blanko, belinu) između dve reči, za kojeg je na tastaturi najčešće predviđen dugački horizontalni taster. Kodovi od 33 do 126 se nazivaju štampajućim (engl. printable) znakovima, koji predstavljaju slova, cifre, znakove interpunkcije, i još nekoliko raznih simbola.

Sedmobitni ASCII je pružao sedam „nacionalnih“ karaktera i, ako i hardver i softver to dozvoljavaju, može se koristiti „prekucavanje“ da bi se simulirali dodatni međunarodni znakovi: posle bekspejsa se može otkucati obrnuti apostrof, tilda ili zarez da bi se dobili određeni znakovi.

U binarnom sistemuU dekadnom sistemuU heksadekadnom sistemuPrikaz
0010 00003220Razmak (␠)
0010 00013321!
0010 00103422"
0010 00113523#
0010 01003624$
0010 01013725%
0010 01103826&
0010 01113927'
0010 10004028(
0010 10014129)
0010 1010422A*
0010 1011432B+
0010 1100442C,
0010 1101452D-
0010 1110462E.
0010 1111472F/
0011 000048300
0011 000149311
0011 001050322
0011 001151333
0011 010052344
0011 010153355
0011 011054366
0011 011155377
0011 100056388
0011 100157399
0011 1010583A:
0011 1011593B;
0011 1100603C<
0011 1101613D=
0011 1110623E>
0011 1111633F?
 
U binarnom sistemuU dekadnom sistemuU heksadekadnom sistemuPrikaz
0100 00006440@
0100 00016541A
0100 00106642B
0100 00116743C
0100 01006844D
0100 01016945E
0100 01107046F
0100 01117147G
0100 10007248H
0100 10017349I
0100 1010744AJ
0100 1011754BK
0100 1100764CL
0100 1101774DM
0100 1110784EN
0100 1111794FO
0101 00008050P
0101 00018151Q
0101 00108252R
0101 00118353S
0101 01008454T
0101 01018555U
0101 01108656V
0101 01118757W
0101 10008858X
0101 10018959Y
0101 1010905AZ
0101 1011915B[
0101 1100925C\
0101 1101935D]
0101 1110945E^
0101 1111955F_
 
U binarnom sistemuU dekadnom sistemuU heksadekadnom sistemuPrikaz
0110 00009660`
0110 00019761a
0110 00109862b
0110 00119963c
0110 010010064d
0110 010110165e
0110 011010266f
0110 011110367g
0110 100010468h
0110 100110569i
0110 10101066Aj
0110 10111076Bk
0110 11001086Cl
0110 11011096Dm
0110 11101106En
0110 11111116Fo
0111 000011270p
0111 000111371q
0111 001011472r
0111 001111573s
0111 010011674t
0111 010111775u
0111 011011876v
0111 011111977w
0111 100012078x
0111 100112179y
0111 10101227Az
0111 10111237B{
0111 11001247C|
0111 11011257D}
0111 11101267E~

Može se primetiti da se dodavanjem broja 32 na kod nekog velikog slova može dobiti isto takvo malo slovo; u binarnom sistemu, isto ovo se može dobiti podešavanjem šeste binarne cifre (počevši od bita najmanje važnosti) na 1.

Druge varijante naziva za ASCII

Dokument RFC 1345, objavljen juna 1992. godine, i registar znakovnih skupova IANA, priznaju sledeće varijante naziva ASCII kao odgovarajuće za korišćenje na Internetu (velika/mala slova nebitna):

  • ANSI_X3.4-1968 — utvrđeno ime
  • ANSI_X3.4-1986
  • ASCII
  • US-ASCII — poželjno (i prvenstveno za korišćenje) MIME ime
  • us
  • ISO646-US
  • ISO_646.irv:1991
  • iso-ir-6
  • IBM367
  • cp367
  • csASCII

Od ovih, samo varijante naziva US-ASCII i ASCII su u širokoj upotrebi. Često se nalaze u neobaveznom parametru „charset“ zaglavlja dokumenta, ili u analognom „meta“ tagu HTML dokumenta, i u deklaraciji znakovnog skupa u uvodnom delu nekih XML dokumenata.

Varijante ASCII-a

Kako se računarska tehnologija širila svetom mnogi oblici ASCII koda razvijeni su od različitih kompanija ili organizacija za standardizaciju kao bi se izrazili i drugi, ne-engleski jezici koji su koristili alfabete zasnovane na romanskim slovima. Neki od oblika mogli bi se smatrati kao ASCII proširenje, iako je ovakvo ime pogrešno primenjivano kako bi se označile sve varijacije, uključujući i one koje nisu sačuvale ASCII mapu znakova u sedmobitnom opsegu.

ISO 646 (1972) je bio prvi pokušaj da se ispravi engleski uticaj, iako je stvorio probleme sa kompatibilnošću, jer je i taj raspored ipak bio samo sedmobitni komplet znakova. Na raspolaganju nije bilo drugih kodova, pa su neki preuređeni u jezično prilagođene varijante. Tako je postalo nemoguće razlikovati koji znak je predstavljen kojim kodom ako se nije znalo koja varijanta je korišćena, a sistemi za obradu teksta su i onako mogli da koriste samo jedan kodni raspored znakova.

Kasnije, unapređenjem tehnologije, pronađen je način da se oslobodi osmi bit svakog bajta čime je dobijeno novih 128 kodnih mesta za znakove sa novom namenom. Tako je na primer, IBM uveo 8-bitnu kodnu stranicu, kao što je kodna stranica 437, koja je zamenila upravljačke znake grafičkim simbolima kao što su „smeška“ („smilies“), a mapirani su i dodatni grafički znaci do ukupnog broja od 128 novih, slobodnih kodnih mesta. Ove kodne stranice podržane su hardverom proizvođača IBM PC kao i operativnim sistemom MS-DOS.

Osmobitni standardi kao što je ISO/IEC 8859 su predstavljali proširenja ASCII-a, ostavljajući originalni raspored kako jeste i samo dodajući dodatne vrednosti iznad broja 127. Ovo je omogućilo da se rasporedi koriste u više jezika, ali su i ovi standardi imali veliki problem sa nekompatibilnošću i ograničenjima. Danas, najšire korišćeni kodni rasporedi su ISO/IEC 8859-1 i originalni sedmobitni ASCII.

Unikod i ISO/IEC 10646 imaju daleko širi izbor karaktera, i njihove različite forme brzo zamenjuju ISO/IEC 8859 i ASCII u mnogim okruženjima. Dok je ASCII kreiran kao sedmobitni kod, Unikod i UCS su definisani relativno apstraktnim „kodnim tačkama“: nenegativne celobrojne vrednosti kojima odgovaraju niske od jednog ili više binarnih okteta, i koje se s njima povezuju različitim tehnikama kodiranja. Da bi se obezbedila podrška za postojeće aplikacije, prvih 128 kodnih tačaka je rezervisano za iste znakove kao i u ASCII-u. ASCII se na taj način može smatrati podskupom Unikoda i UCS-a. Popularni skup karaktera UTF-8 predlaže upotrebu 1-4 binarnih okteta za svaki znak, tj. za svaku kodnu tačku, i takođe ima prvih 128 znakova istih kao u ASCII-u. Drugi skupovi karaktera poput UTF-16 takođe liče na ASCII po tome kako predstavljaju prvih 128 znakova, ali teže da koriste 16 ili 32 bita po znaku, te nisu u potpunosti saglasni sa ASCII-em bez dodatnog prevođenja.

Vidi još

  • Aski umetnost
  • Binarne i tekstualne datoteke
  • Prošireni ASCII
  • ISO 8859
  • Unikod
  • UTF-8
  • EBCDIC
  • PETSCII
  • ATASCII
  • ISCII
  • VISCII
  • Asteroid 3568 ASCII, kojem je dato ime u čast ASCII-a

Vanjske veze