kodowanie znaków


 Problemy z kodowaniem znaków na stronach internetowych objawiają się błędami w postaci krzaczków i dziwnych liter. Prawidłowe wyświetlanie narodowych znaków diakrytycznych wymaga od webmastera pewnych zabiegów. Problemy wynikają z obecności kilku różnych standardów, które nie są wzajemnie kompatybilne.


Tablica znaków

Aby zrozumieć dlaczego używa się tablic znaków, trzeba na początku wyjaśnić jak komputery zapisują cyfry i znaki. Oczywiście jest to zapis cyfrowy, podstawowy język maszyny to zera i jedynki, każdy taki znak to pojedynczy bit. Bity grupowane po 8, tworzą bajty. Dopiero za pomocą bajtu można zapisywać kolejne cyfry i znaki alfabetu.

  


ASCII

Pierwsza tabela znaków ASC obejmowała tylko 127. Każdy znak miał kolejny numer. Chcąc się do niego odwołać należało podać jego numer w tabeli. Przykładowo duża litera A miała 65 numer w tabeli, co w zapisie dwójkowy miało postać: 0100 0001. Taki sposób zapisu miały podstawowe znaki alfabety łacińskiego, cyfry i znaki sterujące.

Poprawiona wersja tego standardu to ASCII, nadal tabela zawiera tylko 127 znaków, jednak ich kolejność została przyjęta przez inne standardy, dlatego nawet jeśli zawierają większą ilość znaków to te pierwsze 127 są takie same.


ASCI (Microsoft)

Przy 127 znakach w tabeli nie mogło być mowy o zapisie narodowych znaków diakrytycznych. Wymóg ten spełniały dopiero tabele zawierające 256 znaków. Popularny stał się standard ASCI opracowany przez Microsoft dla systemów Windows. Jest to kilka kolejnych wersji ze stroną kodową dla różnych krajów. W każdej z nich 127 pierwszych znaków jest taka sama, a kolejne inne w zależności od wersji. Dla Europy zachodniej ma on oznaczenie: Windows-1252 (lub CP1252) dla Europy środkowej Windows-1250 i tak kolejno: 1251- cyrylica, 1256- arabski , 932- japoński.

Tabela znaków Microsoftu nie zyskała dużej popularności dla stron internetowych, głownie jest stosowana w dokumentach pakietu Microsoft Office.


ISO-8859

Na platformach działających w systemie operacyjnym Linux dominuje standard ISO. Jest on tylko częściowo kompatybilny z standardem Microsoftu. Błędy pojawiają się z powodu innej numeracji znaków w części tabeli powyżej 127. Charakterystyczne znaki narodowe są błędnie zastępowane innymi, przez co tekst wygląda jak krzaczki.

Dla Europy Środkowej oznaczenie strony kodowej to: ISO-8859-2

<meta http-equiv="content-type" content="text/html; charset="iso-8859-2">

Dla Europy Zachodnie: ISO-8859-1

Podobnie zmienia się tylko ostatnia cyfra dla innych wersji językowych standardu ISO


UNICODE

Nawet 256 znaków w tabeli to za mało aby w tekście stosować jednocześnie różne znaki narodowe. Taka potrzeba może być gdy podajemy obce nazwy lub nazwiska zawierające nietypowe dla naszego języka znaki. Rozwiązaniem jest bardziej uniwersalny standard UNICODE. Tabela UNICODE zawiera co najmniej 7161 znaków i stale rośnie, jej najnowsza wersja liczy ponad 110 182 znaków. Standard UNICODE jest wspierany przez prawie wszystkie platformy, wystarczy prawidłowo zdefiniować stronę kodową i nie będzie problemu z zapisem żadnego znaku.

Problemem jest tylko zwiększenie się objętości zapisu. O ile w standardach ISO i Windows do zapisu jednego znaku wystarczał jeden bajt to teraz konieczne kilka bajtów. W efekcie ten sam tekst zapisany w UNICODE zawiera kilka razy więcej miejsca. W przypadku typowych znaków marnowane są bajty, które niepotrzebnie wydłużają wielkość zapisu. Przykładowo duża litera A, która nadal ma 65 miejsce w tabeli, to w systemie dwójkowym ma zapis:
00000000 00000000 0100 0001

Jeśli strona internetowa nie wymaga stosowania bardzo nietypowych znaków to należy wybrać uproszczoną wersję kodową, odpowiednio: UTF-8, UTF-16 lub UTF-32, prawidłowy wybór gwarantuje prawidłowe wyświetlanie znaków diakrytycznych i nie zwiększa niepotrzebnie wielkości zapisanej strony.

Deklaracje zastosowanego kodowania powinna się znaleźć w części nagłówkowe META, np:
<meta http-equiv="Content-Type" content="text/html; charset="UTF-8" />

Znaki specjalne

Domyślnym kodowaniem znaków dla polskich stron jest ISO-8859-2 należy go stosować, nawet jeśli potrzebujemy używać w tekście kilka nietypowych znaków, dla kodowania ISO można je wpisać stosując specjalne kody, które informują przeglądarkę, że ma tu zastosować charakterystyczny znak z tabeli UNICODE.

 Więcej na ten tamat na stronie: znaki specjalne

Kodowanie polskich znaków w ISO deklarujemy w części nagłówkowej wpisując tam linijke kodu:

<meta http-equiv="content-type" content="text/html; charset="iso-8859-2">

 Do przygotowania części nagłówkowej strony można skorzystać z naszego: GENERATORA META TAGÓW