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 š, ž, č, ć, đ).
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.
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 sistemu | U dekadnom sistemu | U heksadekadnom sistemu | Skraćenica | Odštampan prikaz | Pristup na tastaturi | Ime/značenje |
---|---|---|---|---|---|---|
0000 0000 | 0 | 00 | NUL | ␀ | ^@ | Karakter sa vrednošću 0 |
0000 0001 | 1 | 01 | SOH | ␁ | ^A | Početak zaglavlja |
0000 0010 | 2 | 02 | STX | ␂ | ^B | Početak teksta |
0000 0011 | 3 | 03 | ETX | ␃ | ^C | Kraj teksta |
0000 0100 | 4 | 04 | EOT | ␄ | ^D | Kraj prenosa |
0000 0101 | 5 | 05 | ENQ | ␅ | ^E | Zahtev |
0000 0110 | 6 | 06 | ACK | ␆ | ^F | Potvrda prijema |
0000 0111 | 7 | 07 | BEL | ␇ | ^G | Zvonce |
0000 1000 | 8 | 08 | BS | ␈ | ^H | Bekspejs |
0000 1001 | 9 | 09 | HT | ␉ | ^I | Horizontalni tab |
0000 1010 | 10 | 0A | LF | ␊ | ^J | Znak za novi red |
0000 1011 | 11 | 0B | VT | ␋ | ^K | Vertikalni tab |
0000 1100 | 12 | 0C | FF | ␌ | ^L | Znak za novu stranicu |
0000 1101 | 13 | 0D | CR | ␍ | ^M | Povratak na početak reda |
0000 1110 | 14 | 0E | SO | ␎ | ^N | Izvlačenje reda |
0000 1111 | 15 | 0F | SI | ␏ | ^O | Uvlačenje reda |
0001 0000 | 16 | 10 | DLE | ␐ | ^P | Data Link Escape |
0001 0001 | 17 | 11 | DC1 | ␑ | ^Q | Signal pomoćnim uređajima 1 (obično paljenje) |
0001 0010 | 18 | 12 | DC2 | ␒ | ^R | Signal pomoćnim uređajima 2 |
0001 0011 | 19 | 13 | DC3 | ␓ | ^S | Signal pomoćnim uređajima 3 |
0001 0100 | 20 | 14 | DC4 | ␔ | ^T | Signal pomoćnim uređajima 4 (obično gašenje) |
0001 0101 | 21 | 15 | NAK | ␕ | ^U | Javljanje o lošem prijemu |
0001 0110 | 22 | 16 | SYN | ␖ | ^V | Pomoćni znak za održavanje sinhronizovanosti |
0001 0111 | 23 | 17 | ETB | ␗ | ^W | Kraj prenosnog bloka |
0001 1000 | 24 | 18 | CAN | ␘ | ^X | Otkazivanje |
0001 1001 | 25 | 19 | EM | ␙ | ^Y | Kraj medijuma |
0001 1010 | 26 | 1A | SUB | ␚ | ^Z | Zamjena |
0001 1011 | 27 | 1B | ESC | ␛ | ^[ ili ESC | Iskejp |
0001 1100 | 28 | 1C | FS | ␜ | ^\ | Znak za struktuisanje podataka nivo 4 |
0001 1101 | 29 | 1D | GS | ␝ | ^[ | Znak za struktuisanje podataka nivo 3 |
0001 1110 | 30 | 1E | RS | ␞ | ^^ | Znak za struktuisanje podataka nivo 2 |
0001 1111 | 31 | 1F | US | ␟ | ^_ | Znak za struktuisanje podataka nivo 1 |
0111 1111 | 127 | 7F | DEL | ␡ | DEL ili bekspejs | Brisanje 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“.
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.
|
|
|
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.
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.
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.
- 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
- Standard ECMA-6: 7-bit Coded Character Set 6th edition (December 1991)
- IANA Registry: C0 Set of ISO 646 Arhivirano 2012-07-29 na Wayback Machine-u
- IANA Registry: ISO 646, USA Version X3.4 - 1968 Arhivirano 2006-03-05 na Wayback Machine-u
- ASCII: American Standard Code for Information Infiltration by Tom Jennings
- Jargon File: ASCIIbetical
- Glavna strana Boba Bemera, neke istorijske beleške autora ASCII-a
- A vodič za izgovor Arhivirano 2002-10-14 na Wayback Machine-u znakova ASCII-a