II Liceum Ogólnokształcące w Kartuzach
im. dra Aleksandra Majkowskiego

Osiedle Wybickiego 33
83-300 Kartuzy
Imieniny obchodzą:
Domasława, Domisława, Marek, Melchior, Regina, Rena, Ryszard,
Cytat tygodnia:
Polacy byli waleczni i walczyli w walce o Anglie, walcząc o niepodległość Anglii.
Nasze serwisy
KODOWANIE ZNAKÓW DLA JĘZYKA HTML

Kodowanie

Deklaracja a kodowanie

Uzyskanie poprawnych znaków na stronie WWW wymaga dwóch rzeczy: zadeklarowania użytego zestawu i użycia znaków w tym zestawie. Oczywiście oznacza to, że sama deklaracja (np. znacznik <meta>) nie wystarczy, podobnie jak jedynie użycie konwertera to za mało.

Kodowanie znaków

ISO-8859-2 vs. Windows-1250

W dokumentach pisanych w języku polskim powinno się stosować kodowanie ISO-8859-2. Jest to międzynarodowy standard, przyjęty także w charakterze Polskiej Normy. Stosuje się go w znakomitej większości polskich dokumentów dostępnych w Internecie. Jest to standard bardziej uniwersalny, dostępny w wielu systemach operacyjnych.

Kodowanie Windows-1250 jest wewnętrznym systemem kodowania, stosowanym w starszych programach firmy Microsoft. Kodowanie to jest niezgodne z normami ASCII - polskie znaki Microsoft umieścił w obszarze zarezerwowanym dla kodów specjalnych (escape codes), dlatego pliki kodowane w Windows-1250 przez niektóre programy słusznie są uznawane za binarne, a nie tekstowe.

Objawem użycia znaków Windows-1250 zamiast ISO-8859-2 jest pojawianie się "1" zamiast "ą" oraz kwadracika zamiast "ś". Jeśli kodowanie jest całkiem źle zadeklarowane, to znak "3" widoczny jest zamiast "ł".

Unicode

Unicode jest zestawem znaków, który w zamierzeniu ma obejmować wszystkie rodzaje znaków stosowanych w piśmie. Kodowania Unicode znoszą ograniczenie do jednego zestawu znaków w dokumencie.

Unicode przypisuje unikalny numer każdemu znakowi (wykraczajacy poza dotychczasowy limit 255), niezależny od używanej platformy, programu czy języka. Dlatego dla dokumentów zawierających znaki z różnych języków, Unicode jest najlepszym rozwiazaniem.

Tekst Unicode można zapisać na kilka sposobów. Wewnętrznie używany przez Windows to UTF-16, podwajający (względem ASCII) objętość każdego tekstu.

Na sieci lepiej użyć oszczędniejszej i bardzej kompatybilnej alternatywy - UTF-8. To kodowanie zapisuje podstawowe znaki jako pojedyncze bajty, a znaki specjalne (w tym polskie) uzyskuje z kombinacji kilku bajtów.

Unikod bardzo ułatwia zapisywanie najróżniejszych znaków, ale jest kilka problemów, których trzeba być świadomym.

Narzędzia Microsoftu, w tym Notepad, dla rozpoznania pliku kodowanego UTF-8 dopisują na początku niewidzialny znak BOM. Znak ten uniemożliwia wysłanie cookies i własnych nagłówków z PHP4, nawet przy włączonym buforowaniu wyjścia.

Znak ten uniemożliwia niektórym przeglądarkom rozpoznanie DOCTYPE dokumentu przełaczając je w tzw. Quirks Mode.

W niektórych przeglądarkach BOM może być widoczny jako "ďťż".

Pliki UTF-8, bez znaku BOM, dobrze działają z większością przeglądarek (nawet tak archaicznych jak Netscape 4) i robotów sieciowych.

Deklaracja

Tag meta

Deklarację użytego zestawu znaków powinno się wysyłać bezpośrednio w nagłówkach serwera (poza dokumentem), ale najczęściej autorzy stron nie mają takiej możliwości. Z tego powodu powstał tag <meta>.

Deklarację należy umieścić w sekcji <head>. Dla kodowania ISO wygląda tak:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">

meta http-equiv jest sposobem uzupełnienia nagłówków HTTP, które serwer powinien przesłać przed wysłaniem dokumentu HTML. Nagłówek Content-Type określa typ dokumentu, tu text/html. charset=ISO-8859-2 jest parametrem typu dokumentu i określa zestaw użytych znaków.

Nagłówki HTTP

Zamiast posługiwać się półśrodkiem, jakim jest <meta>, można wysłać kodowanie w nagłówkach HTTP. Wymaga to dostępu do konfiguracji serwera albo generowania dokumentów przez skrypt po stronie serwera.

Apache

Za pomocą dyrektywy AddDefaultCharset w plikach konfiguracyjnych, w tym również .htaccess.

AddDefaultCharset iso-8859-2
PHP

W PHP jest funkcja header() wysyłająca nagłówki HTTP.

<?php header("Content-Type: text/html; charset=ISO-8859-2"); ?>

Taka deklaracja zastępuje tag <meta>.

Kodowanie serwera i kodowanie dokumentu

Jedną z częstszych przyczyn krzaków na stronach internetowych jest konflikt między kodowaniem ustawionym przez serwer i kodowaniem zastosowanym przy pisaniu dokumentów. Jeśli kodowanie serwera ustawione jest np. na iso-8859-1, to nie zobaczymy polskich znaków diakrytycznych na swojej stronie, mimo tego, że w dokumencie znaki są poprawnie zakodowane i w nagłówku umieszczony został tag <meta>. Kodowanie ustawione przez serwer ma największy priorytet.



Opracował: (-) Adam Barlak


Nasze serwisy
- dla nauczycieli
- dla uczniów
- S.O.S
- porady prawne
- praca

Matura 2006
- informatory maturalne
-
biuletyny maturalne
- pomyśl już o studiach

Informatyka
- podstawy HTML
- kody znaków dla WWW
- internet
- grafika komputerowa
- systemy operacyjne
- system operacyjny - DOS
- skróty klawiaturowe
- algorytmy
- edytory tekstu

Budowa komputera
- architektura komputera
- układy cyfrowe
- pamięć komputera
- dyski
- panele LCD

Sieci komputerowe
- podział sieci
- topologia sieci
- elementy sieci Ethernet
- model OSI
- protokoły i usługi
- konfiguracja sieci

Testy
- testy z informatyki

Historia
- morze nasze morze...
- rozbiory 1939
- motoryzacja w Polsce

Chemia
- guziki Napoleona
- gałka muszkatołowa
- związki organiczne

Kącik kulturalny
- poezja
- książki 2004 roku
- fundacja nowej kultury
- świat książki

Galeria
- z życia szkoły




[Strona główna liceum] [Do góry]
Copyright 2003-2006 by aba