PDA

Zobacz pełną wersję : problem ze stroną



Grzybu
17-10-2008, 15:24
Prowadzę stronę internetową dla pewnej szkoły. Stronka zrobiona jest w htmlu i przeszła pozytywnie testy W3C. W pewnym momencie pojawił się problem z polskimi znakami. Mianowicie wszystkie polskie znaki zamieniły się na znak graficzny "?". Najlepsze jest to, że od pewnego czasu nie grzebałem nic w tej stronie. Po prostu pewnego dnia dowiedziałem się że coś jest nie tak. Teraz W3C nie chce nawet zrobić walidacji tej strony. Co może być przyczyną takiej zmiany? Adres stronki to www.spolgim.voltronik.pl (http://www.spolgim.voltronik.pl) Używam kodowania iso-8859-2. Ktoś wie może co jest grane?
Dodam jeszcze, że strona w edytorze wyświetla się poprawnie. Pliki na dysku otwierane FF też poprawnie wyświetlają litery.

fIlek
17-10-2008, 15:49
Sprawa jest prosta - przeglądarka nie mając w nagłówku podanego zestawu znaków przyjmuje, że jest to UTF8 i w takim standardzie je dekoduje. Tutaj masz rozwiązanie problemu: http://www.w3.org/International/O-HTTP-charset.pl.php

barracuda
17-10-2008, 15:51
U mnie wyświetla takie znaczki �

lachoo
17-10-2008, 15:53
Wygląda, że w kodzie jest poprawna deklaracja kodowania: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">. Problem prawdopodobnie leży po stronie serwera www.

Twój serwer WWW nadpisuje deklarację charsetu z plików i serwuje dokument z kodowaniem "utf-8".

Możesz spróbować usunąć spację pomiędzy "text/html;" a "charset=". To może pomóc w przypadku jednego bug'a z Apachem. Ewentualnie ustawić w konfigu Apache'a DefaultCharset=off.

Rozwiązanie wymagające więcej pracy: przekonwertować treść całego serwisu na utf-8 i będzie banglać.

Grzybu
17-10-2008, 16:14
U mnie wyświetla takie znaczki �

Dokładnie!
Czyli przyczyną może być np uaktualnienia serwera? Niestety nie mam możliwości ustawień serwera (albo nie wiem jak to się robi). Dostałem miejsce na serwerze jednego z providerów internetowych, coś jak konto ftp.


W3C automatycznie wykrywa utf8 i wywala błąd, ale gdy mu przestawie ręcznie na ISO ...-2 to wyświetla ostrzeżenia. m in.

The character encoding specified in the HTTP header (utf-8 ) is different from the value in the <meta> element (iso-8859-2). I will use the value from the HTTP header (iso-8859-2) for this validation.

A jak przekonwertowac na UTF?

lachoo
17-10-2008, 16:30
Możesz użyć np. programu Gżegżółka (http://www.gzegzolka.com/).
Pamiętaj też, żeby zachować spójność w znaczniku meta - czyli zmienić tam na utf-8.