If-Koubou

Jakie są kodowania znaków, takie jak ANSI i Unicode, i jak się różnią?

Jakie są kodowania znaków, takie jak ANSI i Unicode, i jak się różnią? (Jak)

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.

Podstawowe bloki konstrukcyjne

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.

Kodowanie znaków

(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.

Wiele różnych typów

(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)

  • ASCII - Amerykański Standardowy Kod Wymiany Informacji jest jednym ze starszych kodowań znaków. Pierwotnie został opracowany na podstawie kodów telegraficznych i ewoluował w miarę upływu czasu, aby objąć więcej symboli i niektóre obecnie przestarzałe, niedrukowane znaki kontrolne. Jest to prawdopodobnie tak podstawowe, jak można uzyskać w zakresie nowoczesnych systemów, ponieważ ogranicza się do alfabetu łacińskiego bez znaków akcentowanych. Jego 7-bitowe kodowanie pozwala na użycie tylko 128 znaków, dlatego na świecie dostępnych jest kilka nieoficjalnych wariantów.
  • ISO-8859 - Najczęściej stosowaną metodą kodowania znaków w Międzynarodowej Organizacji Normalizacyjnej jest numer 8859. Każde określone kodowanie jest oznaczone numerem, często poprzedzonym przez opisowy znak, np. ISO-8859-3 (Latin-3), ISO-8859-6 (łaciński / arabski). Jest to nadzbiór ASCII, co oznacza, że ​​pierwsze 128 wartości w kodowaniu są takie same jak ASCII. Jest on jednak 8-bitowy i pozwala na 256 znaków, więc zaczyna się od niego i zawiera znacznie szerszy wachlarz znaków, przy czym każde kodowanie koncentruje się na innym zestawie kryteriów. Łacińska-1 zawierała kilka akcentowanych liter i symboli, ale później została zastąpiona zmienionym zestawem o nazwie Łacina-9, który zawiera zaktualizowane glify, takie jak symbol Euro.

(Fragment skryptu tybetańskiego, Unicode v4, z unicode.org)

  • Unicode - Ten standard kodowania ma na celu uniwersalność. Obecnie obejmuje 93 skrypty zorganizowane w kilku blokach, z wieloma więcej w pracach. Unicode działa inaczej niż inne zestawy znaków w tym miejscu zamiast bezpośredniego kodowania glifu, każda wartość jest kierowana dalej do "punktu kodowego". Są to wartości szesnastkowe, które odpowiadają znakom, ale same glify są dostarczane w sposób oderwany przez program , na przykład Twoja przeglądarka internetowa. Te punkty kodowe są zwykle przedstawiane w następujący sposób: U + 0040 (co oznacza "@"). Specyficzne kodowania w standardzie Unicode to UTF-8 i UTF-16. UTF-8 próbuje zapewnić maksymalną zgodność z ASCII. Jest 8-bitowy, ale pozwala na wszystkie postacie poprzez mechanizm zastępczy i wiele par wartości na znak. UTF-16 zapewnia idealną kompatybilność ASCII dla pełniejszej, 16-bitowej kompatybilności ze standardem.
  • ISO-10646 - To nie jest rzeczywiste kodowanie, tylko zestaw znaków Unicode, który został ustandaryzowany przez ISO. Jest to głównie ważne, ponieważ jest to repertuar postaci wykorzystywany przez HTML. Brakuje niektórych bardziej zaawansowanych funkcji dostępnych w standardzie Unicode, które umożliwiają sortowanie i od prawej do lewej obok skryptów pisanych od lewej do prawej. Mimo to działa bardzo dobrze do użytku w Internecie, ponieważ umożliwia korzystanie z szerokiej gamy skryptów i umożliwia przeglądarce interpretowanie glifów. To sprawia, że ​​lokalizacja jest nieco łatwiejsza.

Jakie kodowanie powinienem używać?

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.