Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z polskimi znakami
-kubek3898-
post 14.03.2013, 17:52:23
Post #1





Goście







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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
CuteOne
post 14.03.2013, 19:29:35
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


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'];

Go to the top of the page
+Quote Post
-kubek3898-
post 15.03.2013, 13:48:43
Post #3





Goście







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...
Go to the top of the page
+Quote Post
viking
post 15.03.2013, 14:44:26
Post #4





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Ze wględu na to:

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


Po co pytasz jak wiesz lepiej?


--------------------
Go to the top of the page
+Quote Post
-kubek3898-
post 15.03.2013, 14:46:45
Post #5





Goście







@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.
Go to the top of the page
+Quote Post
viking
post 15.03.2013, 15:05:18
Post #6





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 09:15