ASCII

Из Википедије, слободне енциклопедије
Сваки од ASCII знакова приказаних овде једноставним битмапираним фонтом имају своје кодне вредности, од 89 до 101. Између великих и малих слова налазе се шест знакова интерпункције.

ASCII (енгл. American Standard Code for Information Interchange, изговара се „аски“, скраћеница од „Амерички стандардни код за размену података“) је скуп знакова и кодна страница утемељена на латинском писму какво користи енглески језик и још неки западноевропски језици. Најчешће се користи у рачунарству, али и у комуникационој и управљачкој опреми у раду са текстом. У српском језику популарно се назива ошишана латиницалатиница без квачица на (великим и малим) словима š, ž, č, ć, односно dj уместо đ.

Преглед[уреди]

Слично другим кодовима за представљање писаних знакова, ASCII одређује однос између скупова битова и знакова писаног језика, и омогућава дигиталним уређајима да међусобно комуницирају и обрађују и чувају податке које садрже знакове. Знаковни код ASCII, или његово компатибилно проширење (види ниже), се користи у готово свим рачунарима, нарочито персоналним рачунарима и радним станицама. Препоручени MIME назив за ово кодирање је „US-ASCII“.

ASCII је, строго говорећи, седмобитни код, што значи да користи седам бинарних цифара (у распону од 0 до 127 у декадном систему) за представљање знаковних података. У време када је ASCII био уведен, многи рачунари су користили осмобитне групе (бајтове), или прецизније октете) као најмању јединицу за представљање података. Осми бит је био обично коришћен као бит парности за проверу грешака у преносу података или је имао улогу карактеристичну за дати уређај. Машине које нису користиле парност обично су постављале осми бит на нулу, мада је било и неких система које су постављали осми бит на јединицу.

ASCII не прописује ни на који начин информације о концептуалној структури или изгледу парчета текста. То захтева друге стандарде као што су језици за означавање. Концептуална структура може се додати користећи XML или HTML а изглед користећи CSS за релативно једноставне ствари, SGML за нешто компликованије или PostScript, Display PostScript, или Тех за напредно подешавање изгледа текста и прелома.

ASCII је као стандард први пут објавило Америчко удружење за стандарде (енгл. American Standards Association, ASA) 1963. године, која је касније променила име у ANSI. Постоје разне варијанте ASCII-а, али тренутно најраспрострањенија је ANSI X3.4-1986, такође стандардизована као „ECMA-6, ISO/IEC 646:1991 International Reference Version, ITU-T Recommendation T.50 (09/92)“, и RFC 20. Уграђена је у своју највероватније најбољу замену, уникод, као првих 128 комбинација. Неки рачунарски стручњаци сматрају ASCII најуспешнијим софтверским стандардом икад предлаганим.

Историјски гледано, ASCII се развио из телеграфских кодова и његова прва комерцијална употреба је била као седмобитни телепринтерски код којег је производио Сервис за податке Бел. Систем Бел је имао у плану да користи шестобитни код изведен из кода „Fieldata“ који је увео знакове интерпункције и мала слова у ранији петобитни телепринтерски код Баудот, али су се предомислили и придружили се подкомитету АНСИ-а који се бавио развојем ASCII-а. Код Баудот је служио у слању и примању телеграфских порука и много тога наследио из морзеове азбуке, али је за разлику од ње свака јединица кода била константне дужине. У поређењу са ранијим телеграфским кодовима, предложени код Система Бел и ASCII су били преуређени за погодније сортирање и додате су могућности да се користи и на другим уређајима поред телепринтера. Неке могућности ASCII-а, укључујући искејп секвенце (енгл. Escape sequences), су додате захваљујући Бобу Бемеру.

Управљачки знакови ASCII-а[уреди]

Прва тридесет и два кода у табели ASCII-кодова (од 0 до 31 у декадном систему) су резервисана за такозване управљачке знакове; ови кодови практично не садрже никакве податке за приказ, него управљају излазним уређајима (нпр. штампачима, скенерима, итд.). Тако на пример код који има вредност 10 представља команду „нови ред“, која налаже штампачу да помери папир „на горе“ за један ред, док код са вредношћу 27 симулира притисак на тастер искејп, лоциран у горњем левом углу тастатуре.

Код 127 (који настаје кад свих 7 битова има вредност 1) је још један специјални знак познат као „бриши“ (енгл. delete). Иако је његова функција слична функцијама осталих управљачких знакова, овај знак означава да треба да се „обрише“ одељак папирне траке, која је до 1980их била још увек популаран медијум за складиштење података, тако што би се утиснуле све могуће рупе у папир на одговарајућу позицију.

Многи управљачки знакови служе да означе пакете података, или као команде за управљање преносом података (нпр. „Постоји ли нека станица?“, „Потврђујем“, „Не потврђујем“, „Почетак заглавља“, „Почетак текста“, „Крај текста“, итд.). Управљачки знакови искејп и „замени“ дозвољавају протоколу за пренос података да, на пример, означи бинарне податке тако да, ако садрже било какве податке који припадају протоколу за пренос, ови ипак буду обрађени као обични подаци.

„Сепараторски“ знакови требало је да се користе у системима који користе магнетне траке, али су ове испале са тржишта појавом модернијих медијума.

Управљачки знакови XON и XOFF се користе да контролишу ток података са неког брзог уређаја (нпр. рачунара) на неки спор уређај (нпр. штампач) да не би дошло до прескакања и губљења података.

Рани корисници ASCII-а су искористили одређене управљачке знакове да представљају посебне врсте података, као на пример повратак на почетак реда реда, прелазак на почетак/крај блока итд. Употребе су се разликовале, те је један од задатака при превођењу из једног формата података у други обично и правилно превођење ових специјалних знакова. На пример, контролни карактер који представља крај реда се разликује од система до система. Када се подаци пребацују са једног система на други, потребно је исправно препознати и превести ове податке на одредишном систему.

У бинарном систему У декадном систему У хексадекадном систему Скраћеница Одштампан приказ Приступ на тастатури Име/значење
0000 0000 0 00 NUL ^@ Знак са вредношћу 0
0000 0001 1 01 SOH ^A Почетак заглавља
0000 0010 2 02 STX ^B Почетак текста
0000 0011 3 03 ETX ^C Крај текста
0000 0100 4 04 EOT ^D Крај преноса
0000 0101 5 05 ENQ ^E Захтев
0000 0110 6 06 ACK ^F Потврда пријема
0000 0111 7 07 BEL ^G Звонце
0000 1000 8 08 BS ^H Бекспејс
0000 1001 9 09 HT ^I Хоризонтални таб
0000 1010 10 0A LF ^J Знак за нови ред
0000 1011 11 0B VT ^K Вертикални таб
0000 1100 12 0C FF ^L Знак за нову страницу
0000 1101 13 0D CR ^M Повратак на почетак реда
0000 1110 14 0E SO ^N Извлачење реда
0000 1111 15 0F SI ^O Увлачење реда
0001 0000 16 10 DLE ^P Data Link Escape
0001 0001 17 11 DC1 ^Q Сигнал помоћним уређајима 1 (обично паљење)
0001 0010 18 12 DC2 ^R Сигнал помоћним уређајима 2
0001 0011 19 13 DC3 ^S Сигнал помоћним уређајима 3
0001 0100 20 14 DC4 ^T Сигнал помоћним уређајима 4 (обично гашење)
0001 0101 21 15 NAK ^U Јављање о лошем пријему
0001 0110 22 16 SYN ^V Помоћни знак за одржавање синхронизованости
0001 0111 23 17 ETB ^W Крај преносног блока
0001 1000 24 18 CAN ^X Отказивање
0001 1001 25 19 EM ^Y Крај медијума
0001 1010 26 1A SUB ^Z Замјена
0001 1011 27 1B ESC ^[ или ESC Искејп
0001 1100 28 1C FS ^\ Знак за структуисање података ниво 4
0001 1101 29 1D GS ^[ Знак за структуисање података ниво 3
0001 1110 30 1E RS ^^ Знак за структуисање података ниво 2
0001 1111 31 1F US ^_ Знак за структуисање података ниво 1
0111 1111 127 7F DEL DEL или бекспејс Брисање знака

Горња табела у петој колони садржи знак који се приказује када се управљачки знак одштампа (уместо интерпретира у складу са његовим значењем); неким браузерима је потребно инсталирати додатне фонтове да би се знак приказао на прави начин.

Шеста колона приказује уобичајене тастере на тастатури које је потребно притиснути да би се унели одговарајући управљачки знакови. У овој колони, капица (^) представља тастер „Контрол“ (Ctrl), који се мора притиснути и држати док се притиска наредни тастер (нпр. ^Z значи да се притисне тастер Контрол и држи док се притиска тастер Z. Поједини програми користе ову репрезентацију да прикажу контролни карактер на екрану, у случају да га не разумеју.

Неки програми за Интернет су имали обичај да преводе управљачки знак за брисање (Delete) у управљачки знак за брисање унатраг (бекспејс) при преносу података на сервер. Ако би нпр. уређивач текста на серверу прихватио овај карактер и не би га разумио, обично је приказивао ^H на месту где је требао да обрише претходни карактер. ^H се због тога и данас користи на духовит начин, нпр. „Сваког минута, роди се потенцијална наивчина^H^H^H^H^H^H^H^H^H муштерија“.

ASCII знакови који увек могу да се одштампају[уреди]

Код 32 се користи за размак (бланко, белину) између две речи, за којег је на тастатури најчешће предвиђен дугачки хоризонтални тастер. Кодови од 33 до 126 се називају штампајућим (енгл. printable) знаковима, који представљају слова, цифре, знакове интерпункције, и још неколико разних симбола.

Седмобитни ASCII је пружао седам „националних“ знакова и, ако и хардвер и софтвер то дозвољавају, може се користити „прекуцавање“ да би се симулирали додатни међународни знакови: после бекспејса се може откуцати обрнути апостроф, тилда или зарез да би се добили одређени знакови.


У бинарном систему У декадном систему У хексадекадном систему Приказ
0010 0000 32 20 Размак (␠)
0010 0001 33 21 !
0010 0010 34 22 "
0010 0011 35 23 #
0010 0100 36 24 $
0010 0101 37 25 %
0010 0110 38 26 &
0010 0111 39 27 '
0010 1000 40 28 (
0010 1001 41 29 )
0010 1010 42 2A *
0010 1011 43 2B +
0010 1100 44 2C ,
0010 1101 45 2D -
0010 1110 46 2E .
0010 1111 47 2F /
0011 0000 48 30 0
0011 0001 49 31 1
0011 0010 50 32 2
0011 0011 51 33 3
0011 0100 52 34 4
0011 0101 53 35 5
0011 0110 54 36 6
0011 0111 55 37 7
0011 1000 56 38 8
0011 1001 57 39 9
0011 1010 58 3A :
0011 1011 59 3B ;
0011 1100 60 3C <
0011 1101 61 3D =
0011 1110 62 3E >
0011 1111 63 3F ?
 
У бинарном систему У декадном систему У хексадекадном систему Приказ
0100 0000 64 40 @
0100 0001 65 41 A
0100 0010 66 42 B
0100 0011 67 43 C
0100 0100 68 44 D
0100 0101 69 45 E
0100 0110 70 46 F
0100 0111 71 47 G
0100 1000 72 48 H
0100 1001 73 49 I
0100 1010 74 4A J
0100 1011 75 4B K
0100 1100 76 4C L
0100 1101 77 4D M
0100 1110 78 4E N
0100 1111 79 4F O
0101 0000 80 50 P
0101 0001 81 51 Q
0101 0010 82 52 R
0101 0011 83 53 S
0101 0100 84 54 T
0101 0101 85 55 U
0101 0110 86 56 V
0101 0111 87 57 W
0101 1000 88 58 X
0101 1001 89 59 Y
0101 1010 90 5A Z
0101 1011 91 5B [
0101 1100 92 5C \
0101 1101 93 5D ]
0101 1110 94 5E ^
0101 1111 95 5F _
 
У бинарном систему У декадном систему У хексадекадном систему Приказ
0110 0000 96 60 `
0110 0001 97 61 a
0110 0010 98 62 b
0110 0011 99 63 c
0110 0100 100 64 d
0110 0101 101 65 e
0110 0110 102 66 f
0110 0111 103 67 g
0110 1000 104 68 h
0110 1001 105 69 i
0110 1010 106 6A j
0110 1011 107 6B k
0110 1100 108 6C l
0110 1101 109 6D m
0110 1110 110 6E n
0110 1111 111 6F o
0111 0000 112 70 p
0111 0001 113 71 q
0111 0010 114 72 r
0111 0011 115 73 s
0111 0100 116 74 t
0111 0101 117 75 u
0111 0110 118 76 v
0111 0111 119 77 w
0111 1000 120 78 x
0111 1001 121 79 y
0111 1010 122 7A z
0111 1011 123 7B {
0111 1100 124 7C |
0111 1101 125 7D }
0111 1110 126 7E ~

Може се приметити да се додавањем броја 32 на код неког великог слова може добити исто такво мало слово; у бинарном систему, исто ово се може добити подешавањем шесте бинарне цифре (почевши од бита најмање важности) на 1.

Друге варијанте назива за ASCII[уреди]

Документ RFC 1345, објављен јуна 1992. године, и регистар знаковних скупова IANA, признају следеће варијанте назива ASCII као одговарајуће за коришћење на Интернету (велика/мала слова небитна):

  • ANSI_X3.4-1968 — утврђено име
  • ANSI_X3.4-1986
  • ASCII
  • US-ASCII — пожељно (и првенствено за коришћење) MIME име
  • us
  • ISO646-US
  • ISO_646.irv:1991
  • iso-ir-6
  • IBM367
  • cp367
  • csASCII

Од ових, само варијанте назива US-ASCII и ASCII су у широкој употреби. Често се налазе у необавезном параметру „charset“ заглавља документа, или у аналогном „meta“ привеску HTML документа, и у декларацији знаковног скупа у уводном делу неких XML докумената.

Варијанте ASCII-а[уреди]

Како се рачунарска технологија ширила светом многи облици ASCII кода развијени су од различитих компанија или организација за стандардизацију као би се изразили и други, не-енглески језици који су користили алфабете засноване на романским словима. Неки од облика могли би се сматрати као ASCII [[Extended ASCII|проширење]], иако је овакво име погрешно примењивано како би се означиле све варијације, укључујући и оне које нису сачувале ASCII мапу знакова у седмобитном опсегу.

ISO 646 (1972) је био први покушај да се исправи енглески утицај, иако је створио проблеме са компатибилношћу, јер је и тај распоред ипак био само седмобитни комплет знакова. На располагању није било других кодова, па су неки преуређени у језично прилагођене варијанте. Тако је постало немогуће разликовати који знак је представљен којим кодом ако се није знало која варијанта је коришћена, а системи за обраду текста су и онако могли да користе само један кодни распоред знакова.

Касније, унапређењем технологије, пронађен је начин да се ослободи осми бит сваког бајта чиме је добијено нових 128 кодних места за знакове са новом наменом. Тако је на пример, IBM увео 8-битну кодну страницу, као што је кодна страница 437, која је заменила управљачке знаке графичким симболима као што су „смешци“ („smilies“), а мапирани (пресликани) су и додатни графички знаци до укупног броја од 128 нових, слободних кодних места. Ове кодне странице подржане су хардвером произвођача IBM PC као и оперативним системом MS-DOS.

Осмобитни стандарди као што је ISO/IEC 8859 су представљали проширења ASCII-а, остављајући првобитни распоред како јесте и само додајући додатне вредности изнад броја 127. Ово је омогућило да се распореди користе у више језика, али су и ови стандарди имали велики проблем са некомпатибилношћу и ограничењима. Данас, најшире коришћени кодни распореди су ISO/IEC 8859-1 и првобитни седмобитни ASCII.

Уникод и ISO/IEC 10646 имају далеко шири избор знакова, и њихове различите форме брзо замењују ISO/IEC 8859 и ASCII у многим окружењима. Док је ASCII креиран као седмобитни код, Уникод и UCS су дефинисани релативно апстрактним „кодним тачкама“: ненегативне целобројне вредности којима одговарају ниске од једног или више бинарних октета, и које се с њима повезују различитим техникама кодирања. Да би се обезбедила подршка за постојеће апликације, првих 128 кодних тачака је резервисано за исте знакове као и у ASCII-у. ASCII се на тај начин може сматрати подскупом Уникода и UCS-а. Популарни скуп знакова UTF-8 предлаже употребу 1-4 бинарних октета за сваки знак, тј. за сваку кодну тачку, и такође има првих 128 знакова истих као у ASCII-у. Други скупови знакова попут UTF-16 такође личе на ASCII по томе како представљају првих 128 знакова, али теже да користе 16 или 32 бита по знаку, те нису у потпуности сагласни са ASCII-ем без додатног превођења.

Види још[уреди]

Спољашње везе[уреди]