Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX - problem z kodowaniem
Forum PHP.pl > Forum > XML, AJAX
edspiner
Witam

Sory jeśli poruszam temat który się przewinął ... ale nie znalazłem nic takiego.

Mab problem z kodowaniem ogonków w AJAXie

przykład:

stronka odpala skrypt onclick:
  1. function getItem(opt,id) {
  2.      if(!id) id = '';
  3.      advAJAX.get({
  4.            url : "scripts/test.php",
  5.            onSuccess : function(obj) {
  6.                  if(document.getElementById) document.getElementById("contentDiv").innerHTML = +obj.responseText;
  7.                  else if(document.all) document.all["contentDiv"].innerHTML = obj.responseText;
  8.            }
  9.      });
  10. }


skrypt wygląda nastepująco:
  1. <? 
  2. setlocale (LC_TIME, "pl_PL"); 
  3. echo strftime("%d %B %G");
  4. ?>


w rezultacie dostaję:
6 kwiecie?06 ( na dzisiaj )

oczwysiści sam test.php zwara mi poprawnie:
16 kwiecień 2006
...kodując w windowsach ale to szczegół

Czy ktoś natknął się na taki problem i wie jak go rozwiązać ?

pozdro

P.S.
żeby było śmieszniej to ten błąd mam tylko IE ... :/
Vengeance
<?
header('Content-type: text/html; charset=iso-8859-2');

setlocale (LC_TIME, "pl_PL");
echo strftime("%d %B %G");
?>

I strona, na ktorej wyświetlasz tę datę powinna mieć kodowanie iso czyli:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />

Uwaga na skrypty, gdzie będziesz wysyłał jakieś dane... Będzie się to odbywało w UTF (tak samo standardowo advajax "odbierane" dane jako UTF) i konieczne będą konwersje.
edspiner
Niestety efekt jest ten sam,zresztą próbowałem to już wcześniej ...
... to i inne sposoby:
- wlepać na twardo <mata>
- dać cały nagłówek html'a
- <php ini_set('default_charset')...
etc...

nic nie działa

generalnie skypt docelowy w którym kożystam z tych metod pobiera dane z MySQLa które są kodowane w iso-8859-2 (czyli ogonki wyświetlane to ogki w kodzie)
i tak generalnie jest, kod generuje te ogonki ale nie wiem czemu choć stora główna ma ustawione kodowanie iso-8858-2 to częśc wktórej jest wyświtlany wynik jest w innym kodowaniu...

P.S.
Wynik skryptu wysyłam do div'a przez innerHTML (może to ma jakieś znaczenie)
Vengeance
Przed chwilą miałem ten sam problem i ów:
header('Content-type: text/html; charset=iso-8859-2');

pomogło. Oczywiście jeśli jesteś pewien, że dane z bazy jak i cała strona jest poprawnie skodowana w ISO.
patrykt
mam ten sam problem. w Operze wszystko działa ok natomiast w IE nie ma już polskich liter :/

header('Content-type: text/html; charset=iso-8859-2') nie pomaga
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.