Polskie litery na serwerach WWW

Koniec ╢wiΩtych wojen

Problem z polskimi literami pod WWW stwarzaj▒ tylko Ci administratorzy serwer≤w, co jeszcze nie zauwa┐yli, ┐e "╢wiΩte wojny" o wy┐szo╢µ jednego "standardu" kodowania nad innym "standardami" ju┐ siΩ sko±czy│y.

Sta│o siΩ to dziΩki temu, ┐e wszystkie nowsze przegl▒darki WWW pod MS Windows potrafi▒ wy╢wietliµ tekst zakodowany w ISO (po pobraniu konwertuj▒ go na wewnΩtrzn▒ reprezentacjΩ MS Windows - CP1250). Tak wiΩc je╢li pod WWW udostΩpnisz tekst z literami w ISO, to przeczyta go ka┐dy - a gdy w CP1250, to tylko czΩ╢µ u┐ytkownik≤w. Tak wiec, je╢li dostarczycielowi informacji zale┐y na tym ┐eby informacje prezentowane na jego serwerze by│y powszechnie dostΩpne, to wyb≤r jest prosty: stosowaµ kodowanie standardowe, czyli ISO-8859-2.

Je╢li czemu╢ nie jeste╢ przekonany i nadal znajdujesz z 17 powod≤w dla kt≤rych standard jest niedobry, to koniecznie przeczytaj ten tekst.

Jak przej╢µ na ISO?

Co zrobiµ gdy do tej pory stosowa│e╢ na swoim serwerze kodowanie Windows?

Mo┐esz skorzystaµ z programu wwwfixpl - przekoduje wszystkie teksty na Twoim serwerze z CP1250 do ISO, a co wiΩcej, bedziesz mog│ ten program uruchamiaµ wielokrotnie - przy kolejnych uruchomieniach przekodowane zostan▒ tylko te teksty, kt≤re bΩd▒ zakodowane w CP1250.

Uzupe│ni tak┐e (opcjonalnie) tekst o informacjΩ o stosowanym charsecie w postaci tagu META.


Sprowadza siΩ to wszystko do tego, ┐e udostΩpniaj▒c jakie╢ informacje w WWW musisz zadbaµ, by:

  1. polskie litery w tek╢cie by│y zakodowane w standardzie ISO-8859-2;
  2. dla dokument≤w z polskimi literami by│ podany tzw. charset dokumentu.

Charset mo┐na podaµ:


Je╢li za╢ uznasz ka┐dorazowe uruchamianie programu przekodowuj▒cego za zbyt k│opotliwe a Twoje narzΩdzia/╢rodowisko do tworzenia stron WWW zapisuje wy│▒cznie w CP1250, to przekodowywanie do ISO mo┐esz wbudowaµ bezpo╢rednio w serwer - patrz ponizej.

Serwer mo┐e tak┐e przekodowywaµ w drug▒ stronΩ - wysy│aj▒c broserom WWW tekst przekodowany np. do CP1250, ale od tego rozwi▒zania ju┐ siΩ odchodzi - jest niepotrzebne gdy przekodowywaµ umiej▒ browsery a tylko niepotrzebnie wprowadza k│opoty.

Wszystkie opisane poni┐ej rozwi▒zania to serwery pracuj▒ce w systemie Unix - poprawiane bezpo╢rednio w ╝r≤d│ach. W ╢wiecie Microsoft Windows jak na razie jedynie Microsoft zadeklarowa│ siΩ, ┐e jego Internet Information Server potrafi przekodowywaµ, ale nie znam ┐adnych szczeg≤│≤w.


Beza

Modyfikacja zrealizowana jest w oparciu o ciekawy pomys│ i jest bardzo starannie przygotowana - modyfikacja oryginalnego serwera sprowadza siΩ do rozpakowania archiwum, wydania komendy patch, rekompilacji i dodaniu jednej linijki do pliku konfiguracyjnego. PaczkΩ przygotowan▒ przez autora - Krzysztofa Marka Matyskiela <K.Matyskiel@ia.pw.edu.pl> znajdziesz tutaj.

Dla serwer≤w obs│uguj▒cych bardzo du┐y ruch, znacz▒c▒ wad▒ Bezy mo┐e byµ dodatkowe obci▒┐enie wnoszone przez redirecty URL'i absolutnych na takie, w kt≤rych wystΩpuje cz│on "/Pl-xxx/".

Przyk│adowy serwer u┐ywaj▒cy Bezy to: Politechnika Warszawska.

Beza light

Prostsza wersja Bezy - dzia│a jedynie w oparciu o mechanizm cookie, potrafi te┐ okre╢laµ kodowanie docelowe w oparciu o rodzaj klienta WWW. Niestety do prawid│owego dzia│ania wymaga by nie by│o stosowane w3cache.

Nie ma natomiast ┐adnych problem≤w w stosowaniu funkcji przekodowywania z CP1250->ISO - Beza light przyda Ci sie, je╢li koniecznie musisz na serwerze trzymaµ pliki zakodowane w CP1250 (bo np. edytujesz je z PC jakimi╢ starymi edytorami HTML'a).

Beza light w odr≤┐nieniu od Bezy nie wprowadza zauwa┐alnych op≤╝nie± po stronie klienta jak i praktycznie nie zwiΩksza obci▒┐enia serwera.

Beza light mo┐e ustawiaµ charset dokumentu dla wszystkich dokument≤w w serwerze, tylko dla wybranych katalog≤w, lub dla wszystkich z pominiΩciem podanych katalog≤w.

¼r≤d│a Bezy light, wraz z opisem, znajdziesz tutaj

PL10

(Jacek Nowicki z│o╢liwie traktuje w swoim programie kodowanie standardowe jako najmniej znaczacy ze "standard≤w" kodowania - umieszcza go na ostatniej, dziesi▒tej pozycji w li╢cie)

Do przekodowywania przystosowany te┐ zosta│ serwer NCSA 1.4. ModyfikacjΩ wykona│ Jacek Nowicki i u┐ywa na serwerze Polska On Line.

Autor jeszcze nie udostΩpnia ╝r≤de│ - powiedzia│ ┐e udostΩpni jak doszlifuje, ale wszystko wskazuje na to, ┐e od d│u┐szego czasu nic przy tym nie robi.
W tym rozwiazaniu konwersji poddawane s▒ nie tylko polskie litery ale cale teksty - w szczegolno╢ci przepisywane s▒ tak┐e URL'e. Rozwi▒zanie stsosowane w Bezach unika przepisywania i jako takie jest potencjalnie bardziej niezawodne (nie ma mo┐liwo╢ci ┐e autor przeoczy jaki╢ niuans sk│adniowy w HTML'u).


Skrypty przekodowuj▒ce

Do niedawna by│o to rozwi▒zanie do╢µ czΩsto stosowane na polskich serwerach WWW - teraz jest ju┐ archaiczne i niepotrzebne.

Chyba najdoskonalszym programem tego typu by│: plconv-cgi.


JS