Tabela ASCII
ASCII przypisuje numer 128 znakom — cyfrom, nieakcentowanym literom łacińskim, powszechnym znakom interpunkcyjnym i 33 kodom sterującym, które nigdy nie miały być drukowane. Każdy z nich znajduje się poniżej w zapisie dziesiętnym, szesnastkowym, ósemkowym i binarnym, wraz z numerem encji HTML.
Pierwsze 32 kody i ostatni to znaki sterujące. Większość ma charakter historyczny, z czasów dalekopisów i taśmy papierowej, ale kilka z nich wciąż obsługuje wszystko, co wpisujesz: 9 to Tab, 10 to znak nowej linii w Uniksie, 13 to powrót karetki, który Windows łączy z nim w parę, a 27 rozpoczyna każdą sekwencję sterującą ANSI, której terminal używa do kolorów.
ASCII to pierwsze 128 punktów kodowych Unicode, bez zmian, dlatego wciąż jest wspólnym mianownikiem niemal każdego używanego kodowania. UTF-8 zaprojektowano tak, aby każdy plik czysto ASCII był już poprawnym UTF-8, bajt po bajcie.
| Dziesiętnie | Szesnastkowo | Ósemkowo | Binarnie | Znak | HTML | Nazwa |
|---|
| 0 | 00 | 000 | 00000000 | NUL | � | NullTerminator ciągu znaków w języku C. Nie jest znakiem drukowalnym. |
| 1 | 01 | 001 | 00000001 | SOH |  | Początek nagłówkaHistoryczny; obejmował nagłówek bloku transmisji. |
| 2 | 02 | 002 | 00000010 | STX |  | Początek tekstuHistoryczny; oznaczał miejsce, w którym zaczynała się treść wiadomości. |
| 3 | 03 | 003 | 00000011 | ETX |  | Koniec tekstuWysyłany przez Ctrl+C, dlatego ten skrót przerywa program. |
| 4 | 04 | 004 | 00000100 | EOT |  | Koniec transmisjiWysyłany przez Ctrl+D; zamyka stdin w powłoce Uniksa. |
| 5 | 05 | 005 | 00000101 | ENQ |  | ZapytanieHistoryczny; prosił drugą stronę o identyfikację. |
| 6 | 06 | 006 | 00000110 | ACK |  | PotwierdzenieOdpowiedź pozytywna w starszych protokołach szeregowych. |
| 7 | 07 | 007 | 00000111 | BEL |  | DzwonekUruchamia dzwonek terminala. Zapisywany jako \a w języku C. |
| 8 | 08 | 010 | 00001000 | BS |  | BackspaceCofa kursor o jedną kolumnę. Zapisywany jako \b. |
| 9 | 09 | 011 | 00001001 | HT | 	 | Tabulacja poziomaKlawisz Tab. Zapisywany jako \t. |
| 10 | 0A | 012 | 00001010 | LF | | Wysuw wierszaZnak nowej linii w Uniksie. Zapisywany jako \n. |
| 11 | 0B | 013 | 00001011 | VT |  | Tabulacja pionowaRzadki; przechodzi do następnej pionowej pozycji tabulacji. Zapisywany jako \v. |
| 12 | 0C | 014 | 00001100 | FF |  | Wysuw stronyPodział strony dla drukarek. Zapisywany jako \f. |
| 13 | 0D | 015 | 00001101 | CR | | Powrót karetkiWraca do pierwszej kolumny. W Windows łączony w parę z LF. Zapisywany jako \r. |
| 14 | 0E | 016 | 00001110 | SO |  | Shift OutHistoryczny; przełączał na alternatywny zestaw znaków. |
| 15 | 0F | 017 | 00001111 | SI |  | Shift InHistoryczny; przełączał z powrotem na standardowy zestaw. |
| 16 | 10 | 020 | 00010000 | DLE |  | Data Link EscapeHistoryczny; sprawiał, że kolejne bajty stawały się danymi sterującymi. |
| 17 | 11 | 021 | 00010001 | DC1 |  | Sterowanie urządzeniem 1XON — wznawia wstrzymaną transmisję. Wysyłany przez Ctrl+Q. |
| 18 | 12 | 022 | 00010010 | DC2 |  | Sterowanie urządzeniem 2Historyczne sterowanie urządzeniem. |
| 19 | 13 | 023 | 00010011 | DC3 |  | Sterowanie urządzeniem 3XOFF — wstrzymuje transmisję. Wysyłany przez Ctrl+S. |
| 20 | 14 | 024 | 00010100 | DC4 |  | Sterowanie urządzeniem 4Historyczne sterowanie urządzeniem. |
| 21 | 15 | 025 | 00010101 | NAK |  | Potwierdzenie negatywneOdpowiedź negatywna w starszych protokołach szeregowych. |
| 22 | 16 | 026 | 00010110 | SYN |  | Bezczynność synchronicznaWypełniał ciszę na łączach synchronicznych. |
| 23 | 17 | 027 | 00010111 | ETB |  | Koniec bloku transmisjiHistoryczny; kończył jeden blok dłuższej wiadomości. |
| 24 | 18 | 030 | 00011000 | CAN |  | AnulowanieOdrzuca dane wysłane przed nim. |
| 25 | 19 | 031 | 00011001 | EM |  | Koniec nośnikaOznaczał fizyczny koniec taśmy lub talii kart. |
| 26 | 1A | 032 | 00011010 | SUB |  | ZastąpienieZnacznik końca pliku w DOS i CP/M. Wysyłany przez Ctrl+Z. |
| 27 | 1B | 033 | 00011011 | ESC |  | EscapeRozpoczyna sekwencję sterującą ANSI — kolory terminala i ruchy kursora. |
| 28 | 1C | 034 | 00011100 | FS |  | Separator plikówNajgrubszy z czterech separatorów danych. |
| 29 | 1D | 035 | 00011101 | GS |  | Separator grupOddziela grupy w obrębie pliku. |
| 30 | 1E | 036 | 00011110 | RS |  | Separator rekordówOddziela rekordy w obrębie grupy. |
| 31 | 1F | 037 | 00011111 | US |  | Separator jednostekNajdrobniejszy separator; czasami używany jako ogranicznik pól. |
| 127 | 7F | 177 | 01111111 | DEL |  | DeleteWszystkie bity wybite na taśmie papierowej, dlatego znajduje się na samej górze. |
| Dziesiętnie | Szesnastkowo | Ósemkowo | Binarnie | Znak | HTML | Nazwa |
|---|
| 32 | 20 | 040 | 00100000 | |   | Spacja |
Interpunkcja i symbole#
33–47, 58–64, 91–96, 123–126| Dziesiętnie | Szesnastkowo | Ósemkowo | Binarnie | Znak | HTML | Nazwa |
|---|
| 33 | 21 | 041 | 00100001 | ! | ! | Wykrzyknik |
| 34 | 22 | 042 | 00100010 | " | " | Cudzysłów |
| 35 | 23 | 043 | 00100011 | # | # | Krzyżyk |
| 36 | 24 | 044 | 00100100 | $ | $ | Znak dolara |
| 37 | 25 | 045 | 00100101 | % | % | Znak procentu |
| 38 | 26 | 046 | 00100110 | & | & | Ampersand |
| 39 | 27 | 047 | 00100111 | ' | ' | Apostrof |
| 40 | 28 | 050 | 00101000 | ( | ( | Lewy nawias okrągły |
| 41 | 29 | 051 | 00101001 | ) | ) | Prawy nawias okrągły |
| 42 | 2A | 052 | 00101010 | * | * | Gwiazdka |
| 43 | 2B | 053 | 00101011 | + | + | Znak plus |
| 44 | 2C | 054 | 00101100 | , | , | Przecinek |
| 45 | 2D | 055 | 00101101 | - | - | Łącznik-minus |
| 46 | 2E | 056 | 00101110 | . | . | Kropka |
| 47 | 2F | 057 | 00101111 | / | / | Ukośnik |
| 58 | 3A | 072 | 00111010 | : | : | Dwukropek |
| 59 | 3B | 073 | 00111011 | ; | ; | Średnik |
| 60 | 3C | 074 | 00111100 | < | < | Znak mniejszości |
| 61 | 3D | 075 | 00111101 | = | = | Znak równości |
| 62 | 3E | 076 | 00111110 | > | > | Znak większości |
| 63 | 3F | 077 | 00111111 | ? | ? | Znak zapytania |
| 64 | 40 | 100 | 01000000 | @ | @ | Małpa |
| 91 | 5B | 133 | 01011011 | [ | [ | Lewy nawias kwadratowy |
| 92 | 5C | 134 | 01011100 | \ | \ | Odwrotny ukośnik |
| 93 | 5D | 135 | 01011101 | ] | ] | Prawy nawias kwadratowy |
| 94 | 5E | 136 | 01011110 | ^ | ^ | Akcent daszkowy |
| 95 | 5F | 137 | 01011111 | _ | _ | Znak podkreślenia |
| 96 | 60 | 140 | 01100000 | ` | ` | Akcent grawis |
| 123 | 7B | 173 | 01111011 | { | { | Lewy nawias klamrowy |
| 124 | 7C | 174 | 01111100 | | | | | Kreska pionowa |
| 125 | 7D | 175 | 01111101 | } | } | Prawy nawias klamrowy |
| 126 | 7E | 176 | 01111110 | ~ | ~ | Tylda |
| Dziesiętnie | Szesnastkowo | Ósemkowo | Binarnie | Znak | HTML | Nazwa |
|---|
| 48 | 30 | 060 | 00110000 | 0 | 0 | Cyfra 0 |
| 49 | 31 | 061 | 00110001 | 1 | 1 | Cyfra 1 |
| 50 | 32 | 062 | 00110010 | 2 | 2 | Cyfra 2 |
| 51 | 33 | 063 | 00110011 | 3 | 3 | Cyfra 3 |
| 52 | 34 | 064 | 00110100 | 4 | 4 | Cyfra 4 |
| 53 | 35 | 065 | 00110101 | 5 | 5 | Cyfra 5 |
| 54 | 36 | 066 | 00110110 | 6 | 6 | Cyfra 6 |
| 55 | 37 | 067 | 00110111 | 7 | 7 | Cyfra 7 |
| 56 | 38 | 070 | 00111000 | 8 | 8 | Cyfra 8 |
| 57 | 39 | 071 | 00111001 | 9 | 9 | Cyfra 9 |
| Dziesiętnie | Szesnastkowo | Ósemkowo | Binarnie | Znak | HTML | Nazwa |
|---|
| 65 | 41 | 101 | 01000001 | A | A | Wielka litera A |
| 66 | 42 | 102 | 01000010 | B | B | Wielka litera B |
| 67 | 43 | 103 | 01000011 | C | C | Wielka litera C |
| 68 | 44 | 104 | 01000100 | D | D | Wielka litera D |
| 69 | 45 | 105 | 01000101 | E | E | Wielka litera E |
| 70 | 46 | 106 | 01000110 | F | F | Wielka litera F |
| 71 | 47 | 107 | 01000111 | G | G | Wielka litera G |
| 72 | 48 | 110 | 01001000 | H | H | Wielka litera H |
| 73 | 49 | 111 | 01001001 | I | I | Wielka litera I |
| 74 | 4A | 112 | 01001010 | J | J | Wielka litera J |
| 75 | 4B | 113 | 01001011 | K | K | Wielka litera K |
| 76 | 4C | 114 | 01001100 | L | L | Wielka litera L |
| 77 | 4D | 115 | 01001101 | M | M | Wielka litera M |
| 78 | 4E | 116 | 01001110 | N | N | Wielka litera N |
| 79 | 4F | 117 | 01001111 | O | O | Wielka litera O |
| 80 | 50 | 120 | 01010000 | P | P | Wielka litera P |
| 81 | 51 | 121 | 01010001 | Q | Q | Wielka litera Q |
| 82 | 52 | 122 | 01010010 | R | R | Wielka litera R |
| 83 | 53 | 123 | 01010011 | S | S | Wielka litera S |
| 84 | 54 | 124 | 01010100 | T | T | Wielka litera T |
| 85 | 55 | 125 | 01010101 | U | U | Wielka litera U |
| 86 | 56 | 126 | 01010110 | V | V | Wielka litera V |
| 87 | 57 | 127 | 01010111 | W | W | Wielka litera W |
| 88 | 58 | 130 | 01011000 | X | X | Wielka litera X |
| 89 | 59 | 131 | 01011001 | Y | Y | Wielka litera Y |
| 90 | 5A | 132 | 01011010 | Z | Z | Wielka litera Z |
| 97 | 61 | 141 | 01100001 | a | a | Mała litera a |
| 98 | 62 | 142 | 01100010 | b | b | Mała litera b |
| 99 | 63 | 143 | 01100011 | c | c | Mała litera c |
| 100 | 64 | 144 | 01100100 | d | d | Mała litera d |
| 101 | 65 | 145 | 01100101 | e | e | Mała litera e |
| 102 | 66 | 146 | 01100110 | f | f | Mała litera f |
| 103 | 67 | 147 | 01100111 | g | g | Mała litera g |
| 104 | 68 | 150 | 01101000 | h | h | Mała litera h |
| 105 | 69 | 151 | 01101001 | i | i | Mała litera i |
| 106 | 6A | 152 | 01101010 | j | j | Mała litera j |
| 107 | 6B | 153 | 01101011 | k | k | Mała litera k |
| 108 | 6C | 154 | 01101100 | l | l | Mała litera l |
| 109 | 6D | 155 | 01101101 | m | m | Mała litera m |
| 110 | 6E | 156 | 01101110 | n | n | Mała litera n |
| 111 | 6F | 157 | 01101111 | o | o | Mała litera o |
| 112 | 70 | 160 | 01110000 | p | p | Mała litera p |
| 113 | 71 | 161 | 01110001 | q | q | Mała litera q |
| 114 | 72 | 162 | 01110010 | r | r | Mała litera r |
| 115 | 73 | 163 | 01110011 | s | s | Mała litera s |
| 116 | 74 | 164 | 01110100 | t | t | Mała litera t |
| 117 | 75 | 165 | 01110101 | u | u | Mała litera u |
| 118 | 76 | 166 | 01110110 | v | v | Mała litera v |
| 119 | 77 | 167 | 01110111 | w | w | Mała litera w |
| 120 | 78 | 170 | 01111000 | x | x | Mała litera x |
| 121 | 79 | 171 | 01111001 | y | y | Mała litera y |
| 122 | 7A | 172 | 01111010 | z | z | Mała litera z |
Częste pytania
Jaka jest różnica między ASCII a UTF-8?
ASCII definiuje 128 znaków, ponumerowanych od 0 do 127. UTF-8 to kodowanie całego Unicode — ponad 150 000 znaków — a te pierwsze 128 koduje jako pojedyncze bajty o dokładnie tych samych wartościach co ASCII. Dlatego każdy plik ASCII jest poprawnym plikiem UTF-8, ale odwrotność zachodzi tylko wtedy, gdy tekst pozostaje w obrębie tych 128 znaków.
Dlaczego tabela kończy się na 127?
ASCII to standard 7-bitowy, a 2⁷ to 128. Kody 128–255 nie należą do ASCII: należą do tego rozszerzenia 8-bitowego, które jest akurat w użyciu — Windows-1252, ISO-8859-1 i innych — co jest właśnie powodem, dla którego są ze sobą niezgodne i dlaczego tekst z akcentami tak często dociera zniekształcony.
Jaki jest kod ASCII spacji?
Dziesiętnie 32, szesnastkowo 20. To znak drukowalny, mimo że wygląda jak nic, dlatego znajduje się poza zakresem znaków sterujących, który kończy się na 31.
Dlaczego DEL jest pod numerem 127, a nie 0?
Taśma papierowa. Usunięcie znaku oznaczało wybicie wszystkich otworów na jego pozycji, a wszystkie siedem wybitych bitów to 127. Usuniętego znaku nie dało się przywrócić, skąd też pochodzi jego współczesne znaczenie.
Jaka jest różnica między CR a LF?
CR (13) przesuwa głowicę drukującą do pierwszej kolumny; LF (10) przechodzi o jedną linię niżej. Unix i macOS kończą linie samym LF, Windows używa CR, po którym następuje LF, i ta niezgodność jest powodem, dla którego plik może wyświetlać się jako jedna długa linia albo z przypadkowymi znakami ^M.