Jak komputer zapisuje litery – kod ASCII, standard Unicode i kodowanie UTF-8 o zmiennej długości, plus polskie znaki i „krzaki".
Komputer przechowuje wyłącznie liczby, więc każdej literze trzeba przypisać numer. Najstarszy powszechny standard to ASCII, który używa 7 bitów i opisuje 128 znaków: litery alfabetu angielskiego, cyfry, znaki interpunkcyjne i znaki sterujące. Polskich liter tam nie ma.
Unicode to odpowiedź na ten problem: jeden wielki katalog, w którym numer dostaje znak z każdego pisma świata – łacińskiego, cyrylicy, chińskiego, a także emoji. Unicode mówi tylko, jaki numer ma znak, nie mówi, jak go zapisać w pamięci.
Za sposób zapisu odpowiada kodowanie, najczęściej UTF-8. Jest ono zmiennej długości: znaki ASCII zajmują w nim jeden bajt, a znaki spoza tego zakresu – dwa, trzy lub cztery. Dzięki temu tekst angielski nie puchnie, a jednocześnie da się zapisać dowolny alfabet.
Warto znać kilka punktów odniesienia w ASCII, bo pozwalają liczyć w pamięci:
A ma kod 65, więc B to 66, C to 67 i tak daleja ma kod 97, czyli dokładnie o 32 więcej niż A0 ma kod 48, więc cyfrę zamienia się na liczbę, odejmując 48Różnica 32 między wielką a małą literą to dokładnie jeden bit, dlatego zamiana wielkości liter jest dla komputera operacją banalną.
Polskie znaki w UTF-8 zajmują dwa bajty. Dlatego napis „żółw" ma cztery znaki, ale siedem bajtów – i dlatego liczba znaków nie zawsze równa się liczbie bajtów.
Najczęstsza forma to obliczenie: ile bajtów zajmie dany tekst, albo jaki kod ma konkretna litera. Zdarza się też pytanie o różnicę między Unicode a UTF-8 – tu punktowana jest świadomość, że jedno to numeracja, a drugie sposób zapisu.
Praktyczna konsekwencja, o którą też pytają: „krzaki" zamiast polskich liter biorą się z otwarcia pliku w innym kodowaniu, niż został zapisany.
A to 65, a to 97, 0 to 48 – różnica między wielką a małą literą wynosi 32.Bo plik zapisano w jednym kodowaniu, a otwarto w innym. Bajty są te same, ale program interpretuje je według złej tabeli. Rozwiązaniem jest wskazanie właściwego kodowania przy otwieraniu.
Sześć znaków, z czego pięć to zwykłe litery po jednym bajcie, a ó zajmuje dwa. Razem siedem bajtów.
Sposobem podziału na bajty. UTF-8 zaczyna od jednego bajta i rozszerza się w razie potrzeby, UTF-16 używa minimum dwóch. Dla tekstów łacińskich UTF-8 jest oszczędniejszy i dlatego zdominował internet.
Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: