Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]polskie znaki
Forum PHP.pl > Forum > Przedszkole
neo1986kk
witam, mam taki problem z ajaxem że nie znajduje mi miast z polskimi znakami

w tabeli mam na przykład

włochy zapisane w mysql jako WĹ‚ochy

i mam wyszukiwarkę, ktróra wysyła ajaxem tresc i wraca z odpowiedzą:
  1.  
  2. if (self.xmlHttpReq) {
  3. self.xmlHttpReq.open("POST", "search.php");
  4. self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  5.  
  6. self.xmlHttpReq.onreadystatechange = function ()
  7. {
  8.  
  9. if (self.xmlHttpReq.readyState == 4)
  10. {
  11. document.getElementById('Result').innerHTML = self.xmlHttpReq.responseText;
  12.  
  13.  


search.php

  1.  
  2. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
  3. header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
  4. header("Cache-Control: no-cache, must-revalidate" );
  5. header("Pragma: no-cache" );
  6. header("Content-Type: text/xml; charset=utf-8");
  7.  
  8.  
  9.  
  10. //Create the XML response.
  11. $xml = '<?xml version="1.0" encoding="UTF-8"?><root>';
  12.  
  13.  
  14. $szukany=$_POST['search'];
  15. //szukam
  16. $szukam1=mysql_query("Select id,nazwa from country where nazwa Like '$szukany%'");
  17. $ileszukam = mysql_num_rows($szukam1);
  18.  
  19. while($row=mysql_fetch_array($szukam1))
  20. {
  21. $xml .= '<countries id="' . $row['id'] . '">';
  22. $xml .= '<name>' . htmlspecialchars($row['nazwa']) . '</name>';
  23. $xml .= '</countries>';
  24. }
  25. $xml .= '</root>';
  26. echo $xml;
  27.  


jak wezme echo $szukany to mi wyświetla w%u0142ochy

czyli nie wyszukuje i co ja moge teraz zrobić?
grzeee
Sprawdź kodowanie plików, też tego gdzie jest formularz - w nagłówku daj UTF-8
neo1986kk
wszędzie jest utf-8

juz to rozwiązałem w ten sposób:
  1.  
  2. function utf16_2_utf8 ($nowytekst) {
  3. $nowytekst = str_replace('Ą','Ą',$nowytekst);
  4. $nowytekst = str_replace('Ć','Ć',$nowytekst);
  5. $nowytekst = str_replace('Ę','Ę',$nowytekst);
  6. $nowytekst = str_replace('Ł','Ł',$nowytekst);
  7. $nowytekst = str_replace('Ń','Ń',$nowytekst);
  8. $nowytekst = str_replace('Ó','Ó',$nowytekst);
  9. $nowytekst = str_replace('Ś','Ś',$nowytekst);
  10. $nowytekst = str_replace('Ź','Ź',$nowytekst);
  11. $nowytekst = str_replace('Ż','Ż',$nowytekst);
  12.  
  13. $nowytekst = str_replace('ą','ą',$nowytekst);
  14. $nowytekst = str_replace('ć','ć',$nowytekst);
  15. $nowytekst = str_replace('ę','ę',$nowytekst);
  16. $nowytekst = str_replace('ł','ł',$nowytekst);
  17. $nowytekst = str_replace('ń','ń',$nowytekst);
  18. $nowytekst = str_replace('ó','ó',$nowytekst);
  19. $nowytekst = str_replace('ś','ś',$nowytekst);
  20. $nowytekst = str_replace('ź','ź',$nowytekst);
  21. $nowytekst = str_replace('ż','ż',$nowytekst);
  22. return ($nowytekst);
  23. }
  24.  


jedyne to ó i Ó mnie drażni bo się pokazują znaczki, a nie moge dać iconv(windows-1250,utf-8,$tekst) bo wtedy cały tekst to krzaczki...


iconv('ISO-8859-2','utf-8',$szukany)

[/php]
lukaskolista
Cytat
włochy zapisane w mysql jako WĹ‚ochy
w bazie masz krzak, to nie oczekuj, ze na stronie go nie bedzie. Popracuj nad kodowaniem w bazie. Najlepiej, jezeli cala aplikacja uzywa tego samego kodowania
neo1986kk
w bazie mam latin2 general ci
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.