TI:WTBD/ASCII
Transkrypt
TI:WTBD/ASCII
TI:WTBD/ASCII American Standard Code for Information Interchange Kodowanie dla podstawowego alfabetu łacińskiego (+ cyfry i podstawowe znaki przestankowe), oparte na zasadzie 1 znak ↔ 1 bajt (8 bitów). Wystarczające dla zapisu tekstów w j. angielskim, ale chyba w żadnym innym. Inaczej: US-ASCII. W 1968 prezydent L. Johnson zarządził, że sprzęt kupowany przez rząd federalny musi wspierać kodowanie ASCII, co prawdopodobnie przypieczętowało sukces tego standardu :D Ustaliło się dość dawno (lata 1960te) jako podstawowy standard kodowania tekstu w branży komputerowej. Istniały i nawet do tej pory pokutują standardy konkurencyjne, zupełnie odmienne (EBCDIC, ..?). Podstawowe ASCII wykorzystuje jedyne bajty o najstarszym bicie wyzerowanym, i to nie wszystkie. Tablicę kodów mamy zwykle pod ręką (man ascii). 0 .. 31: tzw. kody kontrolne, tradycyjnie stosowane do sterowania przepływem na terminalach, liniach szeregowych itp. Co ciekawsze: 0 (NUL) nie ma prawa w zasadzie występować w strumieniu tekstowym (uwaga: UTF-16), w szczególności -- w nazwach plików (Posix), znacznik końca napisu (łańcucha znakowego) w języku C 7 .. 13: [BEL, BS, HT, LF, VT, FF, CR] czyli ['\a', '\b', '\t', '\n', '\v', '\f', '\r'] p. TI:WTBD/KodySpecjalne 27: ESC 32 .. 47: znaki od spacji do '/' 48 .. 57: cyfry dziesiętne 58 .. 64: jeszcze trochę znaków 65 .. 90: wielkie litery 91 .. 96: jeszcze trochę znaków 97 .. 122: małe litery 123 .. 126: jeszcze kilka znaków 127: kod DEL Zbyt wiele logiki może w tym nie ma, ale jednak: wszystkie cyfry stoją przed wszystkimi literami, i to w porządku numerycznym wszystkie wielkie litery stoją przed wszystkimi małymi, w porządku alfabetycznym wszystkie małe litery stoją w porządku alfabetycznym i każda z tych grup zajmuje ciągły przedział wartości kodów. Wiele tradycyjnych narzędzi posługuje się sortowaniem "leksykograficznym" wg. wartości kodów ASCII, w oparciu o te własności. Co jest w sumie zadowalające, jeśli posługujemy się wyłącznie j. angielskim. (kod małej litery) = (kod wielkiej litery) + 32; 32 to binarnie 100000; kody A .. Z to 1000001 .. 1011010; stąd mała litera różni się od wielkiej o ustawienie jednego bitu. Prawidłowy zapis języków innych niż angielski wymaga co najmniej 8-bitowych rozszerzeń ASCII, lub Unicode.