ASCII, UTF-8, ISO-8859 ... Być może widzieliście te dziwne monikery unoszące się w powietrzu, ale co one właściwie oznaczają? Czytaj dalej, aby wyjaśnić, czym jest kodowanie znaków i jak te akronimy odnoszą się do zwykłego tekstu, który widzimy na ekranie.
Kiedy mówimy o języku pisanym, mówimy o literach będących budulcami słów, które następnie budują zdania, akapity i tak dalej. Litery to symbole reprezentujące dźwięki. Kiedy mówisz o języku, mówisz o grupach dźwięków, które łączą się, tworząc jakieś znaczenie. Każdy system językowy ma złożony zestaw reguł i definicji, które rządzą tymi znaczeniami. Jeśli masz słowo, to jest bezużyteczne, chyba że wiesz, z jakiego języka pochodzi i używasz go z innymi, którzy mówią tym językiem.
(Porównanie skryptów Grantha, Tulu i Malayalam, obraz z Wikipedii)
W świecie komputerów używamy terminu "postać". Postać jest rodzajem pojęcia abstrakcyjnego, określonego przez określone parametry, ale jest to podstawowa jednostka znaczeniowa. Łaciński "A" nie jest tym samym, co grecki "alfa" lub arabski "alif", ponieważ mają one różne konteksty - są z różnych języków i mają nieco inne wymowy - możemy więc powiedzieć, że są to różne postacie. Wizualna reprezentacja postaci jest nazywana "glifem", a różne zestawy glifów są nazywane czcionkami. Grupy postaci należą do "zestawu" lub "repertuaru".
Po wpisaniu akapitu i zmianie czcionki nie zmieniasz wartości fonetycznych liter, zmieniasz ich wygląd. Jest po prostu kosmetyczny (ale nie nieważny!). Niektóre języki, takie jak starożytni Egipcjanie i Chińczycy, mają ideogramy; reprezentują one całe idee zamiast dźwięków, a ich wymowę może zmieniać się w czasie i odległości. Jeśli zastąpisz jeden znak dla drugiego, zastępujesz pomysł. To coś więcej niż zmiana liter, zmiana ideogramu.
(Obraz z Wikipedii)
Kiedy wpisujesz coś na klawiaturze lub ładujesz plik, w jaki sposób komputer wie, co wyświetlić? Do tego służy kodowanie znaków. Tekst na twoim komputerze nie jest w rzeczywistości literami, jest to seria sparowanych wartości alfanumerycznych. Kodowanie znaków działa jak klucz, dla którego wartości odpowiadają tym, które znaki, podobnie jak ortografia określa, które dźwięki odpowiadają tym literom. Kod Morse'a to rodzaj kodowania znaków. Wyjaśnia, w jaki sposób grupy długich i krótkich jednostek, takich jak sygnały dźwiękowe, reprezentują znaki. W alfabecie Morse'a znaki są po prostu angielskimi literami, cyframi i kropkami. Istnieje wiele kodowań znaków komputerowych, które przekładają się na litery, cyfry, znaki akcentujące, znaki interpunkcyjne, symbole międzynarodowe i tak dalej.
Często na ten temat używany jest również termin "strony kodowe". Są to w gruncie rzeczy kodowania znaków używane przez określone firmy, często z niewielkimi modyfikacjami. Na przykład strona kodowa Windows 1252 (dawniej znana jako ANSI 1252) jest zmodyfikowaną formą ISO-8859-1. Są one najczęściej używane jako system wewnętrzny do odwoływania się do standardowych i zmodyfikowanych kodowań znaków, które są specyficzne dla tych samych systemów. Na początku kodowanie znaków nie było tak ważne, ponieważ komputery nie komunikowały się ze sobą. Wraz z rosnącą popularnością internetu i powszechnym występowaniem zjawiska nawiązywania kontaktów stało się coraz ważniejsze w naszym codziennym życiu, nawet jeśli nie zdajemy sobie z tego sprawy.
(Zdjęcie od sarah sosiak)
Istnieje wiele różnych kodowań znaków i istnieje wiele powodów takiego stanu rzeczy. Które kodowanie znaków wybierzesz, zależy od Twoich potrzeb. Jeśli komunikujesz się po rosyjsku, sensowne jest użycie kodowania znaków obsługującego cyrylicę. Jeśli komunikujesz się po koreańsku, będziesz potrzebować czegoś, co dobrze reprezentuje Hangul i Hanja. Jeśli jesteś matematykiem, to chcesz czegoś, co ma dobrze reprezentowane wszystkie symbole naukowe i matematyczne, a także glify greckie i łacińskie. Jeśli jesteś dowcipnisiem, może skorzystasz z tekstu do góry nogami. A jeśli chcesz, aby wszystkie te typy dokumentów były przeglądane przez dowolną osobę, potrzebujesz kodowania, które jest dość powszechne i łatwo dostępne.
Rzućmy okiem na niektóre z bardziej popularnych.
(Fragment tabeli ASCII, obraz z asciitable.com)
(Fragment skryptu tybetańskiego, Unicode v4, z unicode.org)
Cóż, ASCII działa dla większości anglojęzycznych użytkowników, ale nie za dużo. Częściej będziesz widzieć ISO-8859-1, który działa dla większości zachodnioeuropejskich języków. Inne wersje ISO-8859 działają dla cyrylicy, arabskiego, greckiego lub innych określonych skryptów. Jeśli jednak chcesz wyświetlać wiele skryptów w tym samym dokumencie lub na tej samej stronie internetowej, UTF-8 pozwala na znacznie lepszą kompatybilność. Działa również bardzo dobrze dla osób, które używają odpowiednich znaków interpunkcyjnych, symboli matematycznych lub znaków spoza mankietu, takich jak kwadraty i pola wyboru.
(Wiele języków w jednym dokumencie, Zrzut ekranu z gujaratsamachar.com)
Są jednak wady każdego zestawu. ASCII ma ograniczone znaki interpunkcyjne, więc nie działa niewiarygodnie dobrze dla korekt typograficznych. Czy kiedykolwiek pisałeś / piszesz tylko w programie Word, aby uzyskać dziwną kombinację glifów? Jest to wada ISO-8859, a raczej jego domniemana interoperacyjność ze stronami kodowymi specyficznymi dla OS (patrzymy na CIEBIE, Microsoft!). Główną wadą UTF-8 jest brak odpowiedniego wsparcia w zakresie edycji i publikowania aplikacji. Innym problemem jest to, że przeglądarki często nie interpretują i wyświetlają tylko znak porządku bajtowego zakodowanego w UTF-8. Powoduje to wyświetlanie niechcianych glifów. Oczywiście deklarowanie kodowania i używania znaków z innego bez zadeklarowania / odniesienia się do nich na stronie internetowej utrudnia przeglądarkom ich renderowanie poprawnie, a wyszukiwarki odpowiednio je indeksują.
W przypadku własnych dokumentów, rękopisów itp. Można użyć wszystkiego, co jest potrzebne do wykonania pracy. Jeśli chodzi o sieć, wydaje się, że większość ludzi zgadza się na używanie wersji UTF-8, która nie używa znaku kolejności bajtów, ale to nie jest całkowicie jednomyślne. Jak widać, każde kodowanie znaków ma swoje zastosowanie, kontekst i mocne i słabe strony. Jako użytkownik końcowy prawdopodobnie nie będziesz musiał się tym zajmować, ale teraz możesz zrobić dodatkowy krok naprzód, jeśli tak wybierzesz.