Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jquery] polskie znaczki...
Forum PHP.pl > Forum > Po stronie przeglądarki
Vasquez21
Witam...

Nagłówek:

  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  2. <? header("Content-Type: text/html; charset=ISO-8859-2"); ?>


Pierwsza linia wiadomo, a druga gdyż gdzieś doczytałem, że może pomóc...

skrypty...

  1. <script type="text/javascript" src="js/jquery/jquery-1.4.2.js" charset="iso-8859-2"></script>
  2. <script type="text/javascript" src="js/jquery/popupImage.js" charset="iso-8859-2"></script>


przy wywołaniu ajaxa:
  1. $.ajax({
  2. type: 'GET',
  3. url: 'js/jquery/ajax_getInfo.php',
  4. contentType: 'iso-8859-2',
  5. data: 'id_p=' + ID_p + '&guid=' + currentID,
  6. success: function(data)
  7. {


jedynie nie jestem pewien czy w wywoływanym pliczku ajax_getInfo.php należy też coś dodać, kod jest b. prosty:

  1. <?
  2. include "../../connect.php";
  3.  
  4. $query = mysql_query("SELECT Opis FROM Produkty WHERE ID_produktu = '".$_GET['id_p']."'");
  5. $wiersz = mysql_fetch_array($query);
  6.  
  7. $zmienna = '<div class="opis">'.$wiersz['Opis'].'</div>';
  8.  
  9. echo $zmienna;
  10. ?>


będę wdzięczny za jakąkolwiek podpowiedź :/
everth
Najprościej zrezygnować z iso na rzecz UTF-8. W twoim przypadku spróbuj:
  1. <?
  2. include "../../connect.php";
  3.  
  4. $query = mysql_query("SELECT Opis FROM Produkty WHERE ID_produktu = '".$_GET['id_p']."'");
  5. $wiersz = mysql_fetch_array($query);
  6.  
  7. $zmienna = '<div class="opis">'.$wiersz['Opis'].'</div>';
  8.  
  9. header("Content-Type: text/html; charset=ISO-8859-2");
  10. echo mb_convert_encoding($zmienna,'ISO-8859-2');
  11. ?>
Vasquez21
dzięki za odpowiedź.

niestety zaproponowane rozwiązanie nie pomogło

co do UTF-8 to gdybym nie miał już wszystkiego ustawionego pod iso to zapewne tak bym zrobił, ale właśnie chociażby inne skrypty już mam ustawione też pod iso, więc zmiana teraz wszystkiego nie wydaje mi się dobrym rozwiązaniem, póki co liczę, że da się to jednak jakoś rozwiązać.
everth
Sprawdź sobie jeszcze za pomocą firebuga jakie dostajesz nagłówki odpowiedzi. Napisałeś że dałeś header po znaczniku meta. Jednak mogło się zdarzyć że nagłówek jest modyfikowany w dalszej części skryptu i tak naprawdę przeglądarka dostaje co innego. headery najlepiej zmieniać już tuż przed zakończeniem buforowania.
Vasquez21
tak jeszcze co do pierwszej sugestii to teraz zauważyłem, że przed zmianami kiedy bezpośrednio wywołałem plik php (żeby sprawdzić odpowiedź) to normalnie się tam wyświetlały polskie znaki, na stronie jednak miałem krzaczki :
"�wietl�wki energooszcz�dnej o trzonku E27 Wy��cznik w obudowie Przew�d 175cm z wtyczk� p�ask� 16A/250V Odleg�o�� od o�wietlanego obiektu min. 0,2m II klasa ochronno�ci Waga: 2380g Zgodno�� z normami europejskimi"

natomiast po dodaniu powyższego kodu w którym już znalazły się te linie:
  1. header("Content-Type: text/html; charset=ISO-8859-2");
  2. echo mb_convert_encoding($zmienna,'ISO-8859-2');


zamiast powyższych krzaczków, wszędzie pojawiają się "?", zarówno podczas podglądu bezpośrednio pliku jak i również podczas wyświetlania przez skrypt.

Cytat
Sprawdź sobie jeszcze za pomocą firebuga jakie dostajesz nagłówki odpowiedzi.

mógłbyś napisać w którym miejscu można sprawdzić te nagłówki odpowiedzi? smile.gif
Jeżeli chodzi Ci o źródło strony to na stronie normalnie pokazuje ISO
everth
Przeglądarka Chromium/Chrome + Developer Tools - jedno rozwiązanie, sam korzystam i polecam
Przeglądarka Firefox + dodatek FireBug - drugie rozwiązanie

Hm, sprawdź w czym jest zakodowana zmienna. Daj:
  1. var_dump(mb_detect_encoding($zmienna)); //sprawdza jest normalne kodowanie
  2.  
  3. header("Content-Type: text/html; charset=ISO-8859-2");
  4. echo mb_convert_encoding($zmienna,'ISO-8859-2');

I jeszcze na szybko - zobacz jaki będzie efekt gdy skonwertujesz na UTF-8
  1. // header("Content-Type: text/html; charset=ISO-8859-2"); // komentujemy tą linię
  2. echo mb_convert_encoding($zmienna,'UTF-8');
Vasquez21
Cytat("everth")
I jeszcze na szybko - zobacz jaki będzie efekt gdy skonwertujesz na UTF-8


"¶wietlówki energooszczêdnej o trzonku E27 Wy³±cznik w obudowie Przewód 175cm z wtyczk± p³ask± 16A/250V Odleg³o¶æ od o¶wietlanego obiektu min. 0,2m II klasa ochronno¶ci Waga: 2380g Zgodno¶æ z normami europejskimi"

to samo w obu miejscach

Cytat
var_dump(mb_detect_encoding($zmienna));

zwraca: bool(false)

everth
Powywalaj te wszystkie swoje charsety (również z ajaxa, zostaw tag meta) i spróbuj jeszcze raz z tym co ci napisałem. Może ktoś widzi rozwiązanie, ja niestety nie -> tutaj masz małą ściągawkę, posprawdzaj sobie według niej. Może pomoże.
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.