Web.Reporter.pl Kurs HTML 4.01, XHTML 1.0 i CSS 2 z przykładami
autor: Dariusz Majgier • ostatnia aktualizacja kursu: 2003.06.01

[Start][Elementy HTML][Atrybuty HTML][Style CSS][Porady online]
[A] [B] [C] [D] [E] [F] [H] [I] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [Z]
[kolory][tekst][czcionki][rozmiary][pozycje][tabele][listy][formularze]
[struktura][linki][multimedia][bloki][obramowania][tła][synteza][druk]

Kodowanie polskich znaków w ISO-8859-2

Polskie znaki narodowe, często nazywane potocznie "ogonkami", sprawiają problemy nie tylko autorom stron WWW. Do dziś istnieje wiele programów, w których zapisuje się je w różnych standardach kodowania. Doliczyłem się w sumie ok. 20 sposobów zapisywania polskich ogonków! Obecnie obowiązującą normą jest standard ISO-8859-2 (odpowiada on Polskiej Normie PN-93 T-42118). I rób wszystko co w Twojej mocy, aby strony WWW były zapisane właśnie w tym standardzie.

Każda strona WWW powinna mieć w sekcji HEAD następujący element META:

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

Informuje on przeglądarkę, że znaki na stronie WWW zapisane są w standardzie ISO-8859-2 i dzięki temu widzimy poprawnie polski litery. Przeglądarka mając taką deklarację sama przestawia się na zalecany przez autora zestaw znaków.

Może dwa słowa o standardach i kodowaniu... Komputer udostępnia nam do dyspozycji 256 różnych znaków zapisanych w tablicy znaków ASCII. Są to liczby, litery, znaki specjalne, wykrzykniki, małpki i jeszcze wiele innych, nieraz niewidocznych znaków, które pełnią jednak ważną rolę w komputerze. Wśród nich muszą się też znaleźć polskie znaki, których tradycyjny (amerykański) zestaw znaków nie przewiduje.

Aby je tam umieścić, trzeba z pewnych znaków zrezygnować. Ponieważ każdy standard kodowania rezygnuje z innych znaków, więc w tablicy ASCII polskie znaki znajdują się na różnych pozycjach w różnych standardach. Komputer znaki rozpoznaje po ich numerze - wciskając klawisz z literą A, informujemy komputer, że na ekranie ma się pojawić symbol o numerze 65, litera B ma numer 66, itd. Można to łatwo sprawdzić pisząc w języku HTML kod znaku, np. &#65; (litera A). Więcej o kodach znaków dowiesz się z artykułu Znaki i ich kody liczbowe

Aby móc korzystać z polskich znaków trzeba mieć polską czcionkę. Linux ma instalowaną domyślnie czcionkę ISO-8859-2 więc problem z głowy, natomiast Windows ma czcionkę w standardzie Windows-1250. Różni się ona jednak od ISO-8859-2 pozycją sześciu liter w tablicy ASCII (ąśźĄŚŹ). Aby móc pisać i widzieć czcionkę ISO trzeba nieco pokombinować...

Windows nie udostępnia polskich znaków ISO, ale nic straconego. Czcionkę autorstwa firmy EuroFont możemy pobrać z serwisu FTP WebReportera i po zainstalowaniu jej w edytorze tekstu bez problemu będziemy widzieć wszystkie polskie znaki w standardzie ISO. Jest tam też malutki programik KeyPlus autorstwa Adama Strzeleckiego, który pozwala pisać w standardzie ISO. Możemy więc pisać i widzieć czcionkę ISO-8859-2. O to chodziło.

Bardziej rozbudowane edytory do stron WWW mają wbudowane mechanizmy do konwersji znaków i nawet nie zauważymy problemu polskich znaków. Piszemy tak, jak zawsze, a otrzymane strony WWW są już poprawnie zakodowane z polskimi znakami w ISO-8859-2.

Oczywiście nie zawsze możemy zainstalować polską czcionkę ISO. Być może mamy też wiele dokumentów napisanych w Windowsie. Nic straconego. W Internecie dostępnych jest wiele programów do konwertowania tekstów z jednego standardu do innego, np. napisany przez Michała Jaskólskiego program Ogonki 97 (też dostępny w serwisie FTP WebReportera). Warto korzystać z takich narzędzi w razie potrzeby.

Na koniec niespodzianka. Strony WWW można też tworzyć w standardzie Windows-1250, czyli tym, w którym domyślnie piszemy korzystając z systemu operacyjnego Windows. Nie jest to jednak sposób zalecany i jeżeli tylko możesz, przestaw się na ISO-8859-2. Jeżeli już koniecznie musisz publikować strony w standardzie Windows-1250 nie zapomnij umieścić w dokumencie HTML innej zawartości elementu META:

<head>
<meta http-equiv="content-type" 
   content="text/html; charset=windows-1250">
</head>

 
• • •
Zobacz porady, skrypty, artykuły i gotowe rozwiązania dla właścicieli stron WWW!