[PHP] Dziwaczne kodowanie z przegladarek

0

istota problemu: strona jest w iso-8859-2, na stronie jest wyszukiwarka z opcja zapamietywania i wyswietlania ostatnich 5 wyszukiwan. Wiekszosc przegladarek wysyla dane z takim kodowaniem, jakie ma strona, niektore z innym, losowo wybranym

napisalem funkcje przerabiajaca dowolne kodowanie z 3 (UTF-8, ISO-8859-2, Win-1250) na dowolne z tej samej listy (sam wykrywa, jakie znaki to sa). Teraz poprawnie sie wyswietla, jezeli np. przed wyslaniem formularza zmienie recznie kodowanie na UTF, czy windows, ale czasem i tak pojawiaja sie krzaki (strona ma spora odwiedzalnosc)... czy ktos sie z tym spotkal?

link do serwisu live: dedo.pl
lik do testowego: dedo.wasilczyk.pl

na testowym "krzaki" przekleil mi klient ze swojej strony, wiec nie jest to juz to samo kodowanie, co oryginalnie (znaki braku znaku ? sie zamienily w zwykle zapytajniki).

Prosze tez nie komentowac stylu pisania tego cms, nie ja go pisalem :P

0

Hmm... To takie pytania pomocnicze:

  1. Czy taka sytuacja się zdarzała w momencie, kiedy to Ty wpisywałeś wyszukiwane słowo?
  2. Jeśli (1=tak) Z jakiej przeglądarki wówczas korzystałeś?

Wychodzę ze sprawdzonego założenia, że w informatyce nic się nie losuje (bez wyraźnego polecenia, chociaż to też nie całkiem losowanie, ale temat na inny wątek), ani nic nie dzieje się bez przyczyny. Więc albo coś jest nie tak na stronie, albo w przeglądarce, która te dane wysłała.

  1. Czy jest jakaś przykładowa sekwencja czynności, by występowanie tej anomalii powtórczyć? Czy to się dzieje "całkowicie losowo"?
0

problem jest rzeczywiście z kodowaniem strony ale po stronie serwera.

szukarka korzysta z AJAX'a z tego co widzę. na początku pliku ze zwracanymi wynikami sugeruję wstawić

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

co rozwiąże problem całkowicie. Oczywiście jeżeli tego samego pliku używa strona w trakcie ładowania dokumentu głównego to trzeba tego headera jakimś sprytnym ifem objąć który się odpali jeżeli odwołamy się do pliku z AJAX'em

0

@Adam:

  1. nie, sytuacja, w ktorej ja wpisywalem juz naprawiona (2 akapit, 2 zdanie)
  2. po prostu co jakiś czas się takie zapytania od userow pojawiaja

@jmail: nie pomyslalem. W sumie moge to na cala strone wrzucic...

EDIT: jest moze napisana jakas szybka "odkrzakowywujaca" funkcja, co zostawia tylko PL znaki i te drukowalne?

0

Ad.1) No tak, jest "naprawiona", ale to raczej obejście problemu - konwersja znaków z kodowań, które wysyła w różnych sytuacjach Twoja przeglądarka na te prawidłowe. Jednak szukałbym powodu takich sytuacji właśnie analizując to, co Twoja przeglądarka wysyła - jest to chyba najlepsza metoda.

1 użytkowników online, w tym zalogowanych: 0, gości: 1