Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z polskimi znakami
Forum PHP.pl > Forum > Przedszkole
kubek3898
Wiem, wiem takich tematów było setki... ale gdyby mój problem byłby taki prosty to bym nowego nie zakładał smile.gif. Do rzeczy: w bazie mam ustawione kodowanie polskich znaków, wykonuję to funkcjami:


  1. @mysql_query("SET NAMES utf8", $sql);
  2. @mysql_query("SET CHARACTER SET utf8", $sql);
  3. @mysql_query("SET collation_connection=utf8_general_ci", $sql);
  4. @mysql_query("SET character_SET_connection=utf8", $sql);
  5. @mysql_query("SET character_SET_client=utf8", $sql);
  6. @mysql_query("SET character_SET_database=utf8", $sql);
  7. @mysql_query("SET character_SET_results=utf8", $sql);
  8. @mysql_query("SET character_SET_server=utf8", $sql);
  9. @mysql_query("SET collation_database=utf8_general_ci", $sql);
  10. @mysql_query("SET collation_server=utf8_general_ci", $sql);


Tak samo plik na 100 % ma kodowanie UTF-8.

Wszystkie słowa, czy tam wyrazy, jak wolicie kodują się poprawnie (polskie znaki występują), jednak przy pobraniu danych z bazy:

  1. while($top_menu_sql = mysql_fetch_array($query))
  2. {
  3. echo '<li><a href="' .$top_menu_sql['link']. '" title="' .$top_menu_sql['description']. '">' .$top_menu_sql['name_menu']. '</a></li>';
  4. }


Polskich znaków nie ma, za to są krzaczki tongue.gif.

W bazie również nie ma pokazanych krzaczków, tylko normalnie polskie znaki (czyli błąd następuje przy pobieraniu).

Czy może ktoś miał podobny problem, i/lub wie jak go rozwiązać?
CuteOne
1. jakie kodowanie masz ustawione w bazie? na pewno jest to utf8?
2. zrób prosty test - stwórz nowy plik i wrzuć do niego:
  1. header ('Content-type: text/html; charset=utf-8');
  2.  
  3. //tu polaczenie z bazą
  4.  
  5. mysql_query("SET NAMES utf8");
  6.  
  7. $result = mysql_query("SELECT * FROM xxx LIMIT 1");
  8. $row = mysql_fetch_assoc($result);
  9.  
  10. echo $row['nazwa_kolumny'];

kubek3898
Po co mam próbować poniższy kod jak dokładnie to samo mam w pliku, w którym wyświetlam i nie działa...
viking
Ze wględu na to:

Kod
header ('Content-type: text/html; charset=utf-8');


Po co pytasz jak wiesz lepiej?
kubek3898
@up

Nie rozumiem Twojego postu?

Po prostu kod, który dał mi CuteOne jest dokładnie taki sam jaki ja stostuję: czyli najpierw wymuszam kodowanie UTF-8 później funkcją mysql_query ustawiam kodowanie NAMES UTF-8 i pobieram z bazy w ten sam sposób...

Ale dla świętego spokoju, to zrobiłem tak przed chwilą i nadal nie działa.
viking
Kod który podał CuteOne ustawiał odpowiednie nagłówki które w twoim kodzie mogły być losowe. A ponieważ nic nie napisałeś jak to wygląda po stronie frotendu to my niestety tutaj nie wróżymy. Wypisz w takim razie te dane na stronie, i ręcznie przełącz kodowanie w przeglądarce aż trafisz na właściwe. Napisz jaki był wynik.
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.