Co to jest ASCII?
Autor: Redakcja Domeny.ForSale Opublikowano
W skrócie: ASCII to standard przypisujący 128 znakom liczby od 0 do 127, dzięki czemu można zapisywać i przesyłać tekst w postaci danych. Obejmuje między innymi litery alfabetu angielskiego, cyfry, znaki interpunkcyjne i kody sterujące, ale nie zawiera polskich liter, takich jak „ą” czy „ł”. Współczesne teksty zwykle zapisuje się w UTF-8, które zachowuje zgodność z ASCII dla tych pierwszych 128 znaków.
Jak działa ASCII i co oznacza jego nazwa
ASCII to skrót od American Standard Code for Information Interchange, czyli amerykańskiego standardowego kodu wymiany informacji. To kodowanie znaków: ustalona reguła przyporządkowania znaków wartościom liczbowym. Komputer przechowuje liczby w postaci bitów, a program odczytujący tekst interpretuje je zgodnie z wybranym kodowaniem.
ASCII jest kodowaniem 7-bitowym. Siedem bitów pozwala zapisać 128 różnych wartości, od 0 do 127. W plikach każdy znak ASCII zwykle zajmuje jeden bajt, czyli osiem bitów, przy czym najstarszy bit ma wartość zero.
Przykładowo wielkiej literze A odpowiada liczba dziesiętna 65, zapisywana szesnastkowo jako 41, a binarnie w jednym bajcie jako 01000001. To trzy sposoby przedstawienia tej samej wartości, nie trzy różne kody znaku. Zapis 0x41, spotykany w dokumentacji i programowaniu, oznacza właśnie wartość szesnastkową.
Jakie znaki zawiera tabela ASCII
W ASCII znajduje się 95 znaków drukowalnych, wliczając spację. Pozostałe 33 pozycje to kody sterujące, które nie reprezentują zwykłych widocznych symboli. Służą między innymi do oznaczania tabulacji lub końca wiersza.
| Znak lub funkcja | Kod dziesiętny | Kod szesnastkowy |
|---|---|---|
| Tabulacja (TAB) | 9 | 09 |
| Przesunięcie do nowego wiersza (LF) | 10 | 0A |
| Powrót karetki (CR) | 13 | 0D |
| Spacja | 32 | 20 |
Cyfra 0 | 48 | 30 |
Wielka litera A | 65 | 41 |
Mała litera a | 97 | 61 |
| Usunięcie (DEL) | 127 | 7F |
Cyfra jako znak nie jest tym samym co liczba. Tekst 123 składa się z trzech znaków o kodach ASCII 49, 50 i 51. Program musi zinterpretować ten tekst jako liczbę, jeśli ma wykonać na nim obliczenia.
Wielkie i małe litery mają osobne kody, dlatego A i a są różnymi znakami. Podobnie spacja nie jest „brakiem danych”: ma własny kod i zajmuje miejsce w pliku.
Kody CR i LF wyjaśniają część różnic między plikami tekstowymi. W systemach uniksowych zakończenie wiersza zwykle oznacza LF, a w Windows — para CRLF. Dokumenty mogą więc wyglądać identycznie w edytorze, mimo że zawierają inne sekwencje bajtów na końcach linii.
ASCII, Unicode i UTF-8 — czym się różnią
ASCII nie obejmuje polskich znaków diakrytycznych, alfabetu greckiego, cyrylicy ani emoji. Do obsługi tekstu w wielu językach służy Unicode — standard przypisujący znakom i innym elementom tekstu numery nazywane punktami kodowymi. UTF-8 jest sposobem zapisywania tych punktów kodowych jako sekwencji bajtów.
Unicode i UTF-8 nie są synonimami. Unicode określa między innymi, jaki numer ma dany znak, a UTF-8 określa, jak zapisać ten numer w danych. ASCII łączy niewielki zestaw znaków z ich prostym kodowaniem liczbowym.
Pierwsze 128 punktów kodowych Unicode odpowiada ASCII. W UTF-8 każdy z tych znaków jest zapisany dokładnie tym samym pojedynczym bajtem co w ASCII. Dlatego plik zawierający wyłącznie poprawny tekst ASCII jest również poprawnym plikiem UTF-8.
Różnicę widać przy słowie kot: zajmuje ono trzy bajty zarówno w ASCII, jak i w UTF-8. Słowa żółw nie da się natomiast zapisać w samym ASCII. W UTF-8 zajmuje ono siedem bajtów: po dwa dla ż, ó i ł oraz jeden dla w.
Dlaczego „rozszerzone ASCII” może wprowadzać w błąd
Określenie „rozszerzone ASCII” nie oznacza jednego uniwersalnego kodowania. Bywa używane wobec różnych kodowań 8-bitowych, które zachowują zakres ASCII i wykorzystują dodatkowe wartości od 128 do 255. Należą do nich między innymi Windows-1250 i ISO-8859-2, stosowane do tekstów środkowoeuropejskich.
Ten sam dodatkowy bajt może oznaczać inny znak zależnie od kodowania. Jeżeli program odczyta plik według niewłaściwej reguły, zamiast polskich liter mogą pojawić się niepoprawne symbole, potocznie nazywane „krzakami”. Sama informacja „plik ASCII” nie wystarczy więc do opisania dokumentu zawierającego znaki spoza podstawowego zestawu.
Kiedy ASCII ma znaczenie w praktyce
ASCII nadal pojawia się w dokumentacji protokołów, formatach plików i ograniczeniach pól formularzy. Komunikat „dozwolone tylko znaki ASCII” oznacza wykluczenie między innymi polskich liter, typograficznych cudzysłowów i długich myślników. Nie oznacza jednak automatycznie, że pole przyjmuje wszystkie znaki ASCII: regulamin lub walidator może dopuszczać wyłącznie litery i cyfry.
Jeśli importowany plik wyświetla błędne znaki, zastosuj krótką procedurę:
- Zachowaj kopię oryginału, zanim zaczniesz zapisywać zmiany.
- Sprawdź kodowanie podane przez źródło pliku, na przykład w ustawieniach eksportu.
- Otwórz plik w edytorze z tym kodowaniem i sprawdź polskie litery.
- Dopiero po poprawnym odczytaniu zapisz kopię w UTF-8, jeśli obsługuje je system docelowy.
Dla nowego dokumentu zawierającego polski tekst wybierz UTF-8, chyba że odbiorca wymaga innego formatu. Gdy otrzymujesz wymaganie „ASCII”, ustal także dokładny zestaw dozwolonych znaków — to pozwoli uniknąć odrzucenia danych mimo poprawnego kodowania.
Zobacz też: Co to jest AGI?
