KODY ASCII.
Jak spowodować, aby komputer potrafiący jedynie wykonywać operacje obliczeniowe na liczbach "zobaczył" znak (cyfrę, literę i inne) wprowadzony z klawiatury?
Trzeba każdemu znakowi przyporządkować liczbę.
Komputer na zapamiętanie jednego znaku w pamięci potrzebuje 1 bajtu. Oznacza to, że może standardowo "zapisać" 255 znaków + 0.
ASCII - (American Standard Code for Information Interchange) to standardowy sposób przypisania liczb do znaków pisarskich.
Znaki kodu ASCII można uzyskać przez:
1. naciśnięcie klawisza ALT i przytrzymanie go wciśniętego;
2. wystukanie na klawiaturze numerycznej kodu znaku; NumLock nie musi być włączony!
3. puszczenie klawisza ALT; dopiero teraz znak pojawia się na ekranie.
2.1 KODY ASCII OD 0 DO 31 - STERUJĄ KOMPUTEREM.
Np. wprowadzenie kodu "13" daje to samo, co naciśnięcie klawisza [Enter]; odpowiednio - "27" to kod klawisza [Esc]. Niektóre z tych kodów sterują też drukarką (wysłanie znaku "12" jako tekstu powoduje wysuw papieru do końca strony). Kody te mają znaczenie dla komputera i reprezentację graficzną (to co widać na ekranie).
2.2 KODY ASCII OD 32 DO 127 - TO ZNAKI UZYSKIWANE Z KLAWIATURY.
Mają reprezentację graficzną i znaczenie dla komputera - takie jak znaki wprowadzone przez naciśnięcie klawiszy.
2.3 KODY ASCII OD 128 DO 255 - ZNAKI NARODOWE, SEMIGRAFICZNE I INNE.
Mają tylko reprezentację graficzną - i są bez znaczenie dla komputera. Ta część kodów nosi nazwę "rozszerzonych".
Rozszerzony kod ASCII jest wykorzystywany:
do sterowanie drukarek;
do stosowania w DOS narodowych znaków;
do tworzenia na ekranie i w wydruku prymitywnej grafiki (patrz niżej) w tym ramek tabel, zwanej "semigrafiką".
Fakt rozmieszczenia w jednym przedziale kodów do trzech różnych zastosowań owocował kolizjami. Stare drukarki traktowały niektóre z kodów tego zakresu jako znaki sterujące krojem czcionki, przesuwem papieru. Podobnie - komenda DOS-u (do wersji 6.2x) tree miała opcję /a aby uniknąć wydruku niepełnego tzn. potraktowania przez drukarkę semigrafiki ASCII jako kodów sterujących i zniekształcenia rysunku drzewa katalogów. Ponad to w programie zawierającym "semigrafikę" z kodów ASCII (a był to np. ogromnie popularny Norton Commander) zamiast elementów tabelek mogą pojawiać się "dziwne" znaki.
3. STRONA KODOWA - (CODE PAGE).
Po jakimś czasie od powstania ASCII powstał pierwszy zestaw znaków narodowych, bowiem ludzie w innych państwach też chcieli mieć w komputerach swój cały alfabet.
Strona kodowa (oznaczana CP) to:
zestaw rozszerzonych znaków ASCII (kody od 128 do 255) zawierający znaki narodowe (np. polskie litery);
informacja o narodowym sposobie zapisu waluty, daty i czasu oraz separatorów dziesiętnych i tysięcznych;
klawiatura narodowa.
Istnieją różne strony kodowe umożliwiające uzyskanie w komputerze różnych znaków narodowych.
Gdy powstały kody ASCII, międzynarodowa organizacja normalizacyjna ISO była przewidująca i poszła dalej. Stworzyła (w porozumieniu z zainteresowanymi) jeszcze więcej stron kodowych dla np. krajów Europy Wschodniej, Rosji (cyrylica), krajów Dalekiego Wschodu (Japonia, Korea). I te normy są znane powszechnie pod nazwą ISO-8859-x, gdzie x jest cyfrą od 1 do 10. Europa Wschodnia, łącznie z Polską dostała numerek 2.
Jesteśmy ZOBOWIĄZANI stosować właśnie ISO-8859-2.
W międzyczasie powstał Microsoft.
Normy ISO już były ustanowione. W tym mniej więcej czasie Bill G. wypuścił na rynek produkt o nazwie "Microsoft Windows". Na początku wersja 2.0, potem 3.0, a wkrótce 3.1. No i właśnie od wersji 3.1 wszystko się zaczęło, bo powstały wersje 3.1EE, 3.1PL i inne. Wszystkie te - nieangielskie - wersje zawierały znaki takie, jak norma ISO, tyle, że te znaki były w innych miejscach. MS twierdził, że skoro firma jest w Stanach, to podlega normie ANSI (p.dalej). Niestety, powinny podlegać normom ustanowionym przez te kraje.
W Polsce "współżyją" więc następujące strony kodowe i standardy polskich liter:
standard ustanowiony przez PN-93/T-42118 zgodną z międzynarodową normą ISO 8859-2; zgodnie z prawem ten standard jest obowiązujący w Polsce!
popularna strona kodowa CP 852 (standard polskich znaków zawarty w niej określany jest nazwą Latin II) jest stosowana w MS-DOS; jej stosowanie zanika wraz z zanikiem DOSu;
równie popularna, z konieczności, strona kodowa - standard polskich liter - CP 1250 stosowana w Windows;
Inne standardy polskich liter to wciąż istniejąca w DOS Mazovia i zapominane DHN, CSK, Microvex, Cyfromat.
Współczesne komputery pozwalają na instalację dowolnej strony kodowej przez uruchomienie programu - zainstalowanie strony kodowej.
4. Kody ANSI.
W Windows występuje odmiana kodów ASCII zwana ANSI (Amerykański Narodowy Instytut Standardów). Różnice nie są duże. Polegają na braku w zakresie rozszerzonym ANSI znaków semigraficznych i sterujących drukarką (w Windows zbędne), oraz innym umieszczeniu znaków narodowych (obejrzenie w Notatniku z Windows tekstu w ASCII wyraźnie to ukazuje).
5. UNICODE (UCS-4).
ASCII i ANSI nie wystarczają, gdy trzeba zapisać w rozszerzonym zakresie np. ponad 3000 chińskich idiomów lub np. stworzyć jedną stronę kodową dla całej Europy. Unicode jest nowoczesnym sposobem kodowania obejmującym znaki używane na całym świecie w tym wielu, jeżeli wręcz nie wszystkich, krajów (np. polskie, hieroglify czy cyrylicę), symbole muzyczne, techniczne, wymowy i inne często spotykane. W odróżnieniu od dotychczas używanych sposobów, kod numeryczny jednoznacznie identyfikuje symbol. Nie ma sytuacji, że dany kod może oznaczać różne symbole w zależności od numeru strony czy innego znacznika. Wynika z tego możliwość swobodnego mieszania znaków różnych krajów bez obawy o niejednoznaczność.
Istotę Unicode zgrabnie odzwierciedla określenie alfabet uniwersalny.
Pełny Unicode jest standardem 32-bitowym (UCS-4). Bagatela: 4 294 967 295 znaków.
Aktualnie używane jest jednak tylko 16 bitów (można przypisać liczby 65 535 znakom).
Ze względu na to, iż nie wszystkie systemy komputerowe i programy zdolne są do używania Unicode w pełnym zakresie oraz dla zapewnienia bezproblemowego transferu przesyłania danych przy użyciu takich systemów komputerowych określono kilka sposobów kodowania:
UTF-7 - format 7-bitowy;
UTF-8 - format 8-bitowy;
UTF-16 - format 16-bitowy;
Specyfiką kodowań UTF-7 i UTF-8 jest przesyłanie kodów ASCII praktycznie bez zmian. Tylko kody większe niż 127 podlegają modyfikacji. Dzięki temu polskie teksty powiększają swoją objętość tylko o niewielki procent (kilka..kilkanaście) zamiast dwukrotnie lub czterokrotnie.