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.