Deklaracja standardu i kodowanie znaków

Transkrypt

Deklaracja standardu i kodowanie znaków
Deklaracja standardu HTML oraz kodowanie polskich liter.
Deklaracja wskazuje przeglądarce połoŜenie pliku, w którym są zawarte definicje typu dokumentu(DTD). Definicja ta
zawiera zasady oraz gramatykę zastosowania znaczników html w dokumencie. Chodzi o to aby przeglądarka dobrze
interpretowała kod i wiedziała np. Ŝe niektórych znaczników się nie zamyka np. <img>. Tyle teorii. W praktyce kaŜda
przeglądarka ma zakodowane na stałe takie definicje i nawet bez deklaracji da sobie radę z odczytaniem kodu. Po co więc
stosować deklaracje DOCTYPE? Aby zachować zgodność ze standardami. Bez deklaracji przeglądarki sobie poradzą ale
będą działać w trybie … dziwacznym.
Tryb dziwactw zwany quirks, to tryb w którym przeglądarka zakłada iŜ strona korzysta z przestarzałych konstrukcji,
niezgodnych z najnowszymi standardami. Tryb ten jest zaimplementowany w przeglądarkach aby mogły one obsługiwać
takŜe przestarzałe strony. O ile jeśli strona została napisana rzeczywiście parę lat temu, a jej kod nie został dostosowany do
najnowszych standardów, tryb quirks się przydaje, o tyle gorzej jest gdy nieświadomi twórcy stron korzystają ze starych
rozwiązań równieŜ teraz, czy to z lenistwa czy z braku wiedzy… Przeglądarka wyświetla wszystko prawidłowo, więc nie
widzą w tym nic złego…
Co właściwie robi przeglądarka w trybie quriks? Przede wszystkim ma problemy z prawidłową obsługą kaskadowych
arkuszy stylów – css, które w tej chwili juŜ są właściwie obowiązkowym składnikiem kaŜdej witryny. Rodzi to wiele
problemów z wyświetlaniem strony, chociaŜ przy prostych stronach problemy te mogą być niezauwaŜalne. Jednak jeśli
chcemy od początku uczyć się prawidłowego programowania stron, trzeba wystrzegać się tego trybu i narzucać przeglądarce
odpowiedni.
I do tego właśnie słuŜy deklaracja DOCTYPE. MoŜe ona mieć kilka postaci. Najbardziej właściwą na ten moment
(póki jeszcze prace nad HTML w wersji 5 trwają) i taką którą powinniśmy uŜywać na stronie jest deklaracja:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
Na początku mamy napisane jasno, Ŝe chodzi o deklaracje DOCTYPE języka HTML. Następnie mamy
zadeklarowane, iŜ uŜywamy definicji typu dokumentu (DTD) dla html w wersji 4.01, czyli takiej, która na tą chwilę jest
najnowsza i wspierana przez w3c. Na koniec w deklaracji podany jest link bezpośredni do dokumentu dtd. I tu mała uwaga.
Jak widać plik nazwany jest strict. To znaczy Ŝe odwołujemy się tylko do wersji 4.01 która nie wspiera niektórych starszych
juŜ znaczników. Stosowanie ich w kodzie będzie niezgodna z deklaracją. Ale wersja 4.01 obsługuje jeszcze wersje
Transitional i Frameset. Wersja Transitional to wersja przejściowa między starszymi standardami, a standardem 4.01.
Pozwala ona na stosowanie w kodzie takŜe starszych znaczników. Natomiast wersja Frameset obsługuje dokumenty, które
stosują na stronie tzw. ramki (kiedyś był to dość popularny sposób budowania witryn. W tej chwili jest on niepolecany i
stosowanie ramek źle świadczy o twórcy strony).
O ile wersje Frameset lepiej nie stosować z wiadomych powodów (strony w oparciu o ramki są na wymarciu) o tyle
wiele osób idzie na łatwiznę i stosuje wersje Transitional. Oczywiście jest to jakieś wyjście , poniewaŜ powala stosować
takŜe starsze znaczniki ale…. Jeśli chcemy od początku budować witryny prawidłowe, powinniśmy stosować tylko i
wyłącznie wersję strict. Wymaga ona wprawdzie trochę uwagi w pisaniu kodu ale sprawić moŜe trudności jedynie tym
którzy są przyzwyczajeni juŜ do starszych znaczników (takich jak np. <font>). Jeśli dopiero zaczynasz zabawę z html, od
razu stosuj deklaracje strict gdyŜ nauczysz się od razu prawidłowej składni.
Deklarację DOCTYPE umieszczamy zawsze na samym początku dokumentu html, przed jakimkolwiek kodem (nawet
przed znacznikiem <html>!).
Skoro deklarację dokumentu mamy z głowy pozostaje jeszcze jedna kwestia – kodowanie strony. O ile gdy uŜywamy
na stronie języka angielskiego, nie stanowi to takiego problemu o tyle gdy piszemy po Polsku i uŜywamy polskich znaków
diakrytycznych, kodowanie strony stanowi waŜną kwestię. Co to jest to kodowanie?
Pisząc cokolwiek na komputerze, widzisz litery ale da komputera kaŜda litera to odpowiedni kod liczbowy. Jednak
poniewaŜ istnieje wiele róŜnych języków, oraz zastosowań komputera, stosuje się teŜ wiele róŜnych kodowań. Taki dajmy
na to Windows uŜywa do kodowania polskich znaków kodowania windows-1250. Pisząc coś w notatniku takie właśnie
kodowanie mamy domyślnie włączone. Teoretycznie moŜna uŜyć go teŜ na stronach www ale…. To nie jest najlepszy
pomysł. Strona w takim kodowaniu będzie widoczna tylko na systemach Windows… A trzeba pamiętać, Ŝe istnieją takŜe
inne systemy jak choćby Linux. W takim systemie nasza strona owszem się wyświetli ale zamiast znaków typu ęćśą
zobaczymy krzaczki albo znaki zapytania. Dlatego pierwsza zasada – kodowanie windows-1250 omijamy z daleka !
Do kodowania polskich znaków uŜywa się standardu ISO-8859-2. Jest to powszechnie uznawany i obsługiwany przez
wszelkie systemy i przeglądarki system kodowania Polskich “ogonków”. Jednak nie jedyny.
Od jakiegoś czasu coraz więcej serwisów zaczyna korzystać ze standardu utf-8, tzw. Unikodu. Jest to uniwersalny
standard kodowania nie tylko polskich ale i innych znaków specjalnych. Dzięki temu, nawet mając wielojęzyczną stronę
moŜemy spokojnie uŜywać tego właśnie kodowania.
Którego kodowania więc uŜywać? Jeśli strona ma być prostą stroną domową to w zupełności starczy ISO-8859-2.
Jednak przy bardziej rozbudowanych serwisach lepiej zastanowić się nad utf-8.
Osobiście polecam uŜywać właśnie tego drugiego kodowania. Na jego korzyść przemawia to, iŜ uŜywając go nie
mamy problemu z polskimi znakami gdy uŜywamy PHP oraz bazy danych MySQL. TakŜe strony wykorzystujące
technologię AJAX , będą wyświetlać prawidłowo polskie znaki.
Minusy? UTF-8 kodując znaki potrzebuje trochę więcej miejsca. Dlatego pliki w tym kodowaniu są trochę większe od
tych kodowanych w ISO. Jednak róŜnica ta wynosi tylko około 5% i nie jest zauwaŜalna.
PowaŜniejszym problemem jest sygnatura (niewidoczna w kodzie czy na stronie. Ale jest dołączana.), którą przy
kodowaniu UTF-8 dodają na początku pliku niektóre edytory (np. windowsowy notatnik). O ile na stronach statycznych w
czystym HTML nie stanowi to problemu, o tyle przy stosowaniu PHP w niektórych sytuacjach moŜe być juŜ z tym problem.
RównieŜ niektóre przeglądarki widząc taką sygnaturę, źle interpretują deklarację DOCTYPE i przełączają się w tryb quirks.
Jednak ten problem moŜna obejść stosując do pisania kodu odpowiednie programy.
Jednak odpowiedni edytor z ustawionym kodowaniem to dopiero połowa sukcesu. Musimy jeszcze poinformować
przeglądarkę o tym jakiego kodowania ma uŜyć do odczytu naszej strony. Jak to zrobić? SłuŜy do tego odpowiedni znacznik
zwany meta tagiem. Musimy go wstawić do dokumentu html w sekcji head. KaŜdy dokument html ma dwie oddzielne
sekcje. Head w której mamy roŜnego rodzaju deklarację i ustawienia, niewidoczne dla odwiedzającego stronę (są one waŜne
tylko dla wyszukiwarek i przeglądarek) oraz sekcję body, w której umieszczamy juŜ właściwą zawartość naszej strony.
Trzeba pamiętać, Ŝe kodowanie znaków umieszczamy między znacznikami <head> i </head>. Znacznik meta, który
musimy wstawić wygląda tak :
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8″>
Dla kodowania ISO naleŜy wstawić:
<meta http-equiv=“Content-Type” content=“text/html; charset=iso-8859-2″>
To są najwaŜniejsze rzeczy, które dotyczą kodowania znaków i deklaracji standardu HTML.

Podobne dokumenty