Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Polskie znaki kodowanie
Forum PHP.pl > Forum > Przedszkole
amii
Wiem, że temat wałkowany ale wszystko czytałem i nic nie pomaga w ogóle jest to dziwna sytuacja. Bo aplikacja działa popranie na jednym serwerze a po przekopiowaniu plików i bazy na drugi się krzaczy. Text generalnie wyświetla się OK, problem jest kiedy wykonuje funkcje, która pobiera synonimy z bazy i zamienia odpowiadające im wyrazy w tekście. Wtedy kiedy wyraz w tekście ma polski znak to wyświetla się np. coś takiego: świata �

Mam w pliku ustawione:
  1. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  2.  
  3.  
  4. function connect_to_db() {
  5. $db = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS)
  6. or die ('Nie moge sie polaczyc z baza danych: ' . mysql_error());
  7.  
  8. mysql_select_db(SQL_DB)
  9. or die('Nie moga wybrac bazy danych wystapil blad: ' . mysql_error());
  10.  
  11. mysql_query("SET NAMES 'utf8'");
  12. mysql_query('SET character_set_connection=utf8');
  13. mysql_query('SET character_set_client=utf8');
  14. mysql_query('SET character_set_results=utf8');
  15. }


Baza zaimportowana w kodowaniu utf8
DEFAULT CHARSET=utf8 dla każdej tabeli
poli25
przeglądarka internetowa ustwiona na jakie kodowanie ?

poza tym jakim edytorem zapisujesz ? z mozliwoscia zmiany kodowania na utf 8 ?
amii
Przeglądarka: firefox kodowanie -> zestaw znaków -> środkowoeuropejski ISO 8859-2
edytor: windowsowy notepad++ a wcześniej linuxowy gedit
poli25
odpowiedziałes sobie dlaczego masz problem winksmiley.jpg
iso-8859-2 musisz dac utf 8 winksmiley.jpg pozdrawiam
amii
Niestety oprócz zrąbania czcionki na forum PHP nic to nie zmienia :/ Myślę, że to nie jest kwestia związana z kodowaniem w przeglądarce w ogóle strasznie wkurzająca sprawa nie rozumiem jak skrypt może działać na jednym serwerze a nie działać poprawnie na innym.
Mam jeszcze takie wyrażenie regularne, które odpowiada za podmianę :
  1. $wyr = "/([^(\p{L}0-9-=\"\')])". $tabliczka[$g] ."([^(\p{L}0-9-=\'\")])/";
  2.  
  3. //funckja pobierająca text z bazy
  4. function a($var) {
  5. connect_to_db();
  6.  
  7. $query = 'SELECT name, value FROM settings_art';
  8. $result = mysql_query($query) or die('Nastapił błąd w zapytaniu do bazy w funkcji a settings_art: '. mysql_error());
  9. while ($r = mysql_fetch_assoc($result)) {
  10. $site_settings[$r['name']] = $r['value'];
  11. }
  12.  
  13. $value = $site_settings[$var];
  14. return $value;
  15. }
  16.  
  17.  
  18. $contentok = a('artykul'); //wlasciwa tresc artykulu pobranie
  19. $content = $contentok;
  20. $content = losuj_synonim($content); //wywolanie funkcji losujacej synonimy dla tresci artykulu
poli25
ja mysle że jednak to bedzie wina kodowania bo moze na jednym serwerze edytujesz innym programem a na drugim serwerze jeszcze innym. Masz 2 takie same edytory? i to samo kodowanie? Wiem ze z kodowaniem znakow wiecznie były problemu dopoki sie nie wkurzyłem i nie zmieniłem wszystko na utf. Kodowanie musi byc ujednolicone wszedzie edytor-> skrypt-> baza-> przegladarka
misterherbata
Jeśli zapisałeś już plik w błędnym kodowaniu niż był poprzednio to możesz mieć problem aby przywrócić poprawne kodowanie. Jest to dosyć kluczowa sprawa, sam nie raz się o tym przekonałem, dlatego przy edycji jakichkolwiek plików zawsze jest to pierwsza rzecz którą sprawdzam(używam Aptana Studio).
amii
OK dzięki posprawdzam to (edytor i przeglądarkę bo reszta jest raczej OK). Wszędzie ustawie UTF8
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.