![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Mam problem z odczytaniem danych z bazy MySQL, a konkretnie z kodowaniem.
Oczywiście z samej bazie wszystkie polskie znaki wyświetlają się poprawnie. System porównań dla połączenia MySQL (w phpmyadmin): utf8_general_ci Metoda porównań napisów mojej bazy: utf8_general_ci Metoda porównań napisów moich tabel: utf8_general_ci Wszystkie pola tekstowe w mojej tabeli kodowane są również w utf8_general_ci Mój plik php, który odczytuje dane z bazy jest w formacie UTF-8 bez BOM W metadanych mam ustawione kodowanie: <meta http-equiv="content-type" content="text/html; charset=utf8" /> Mimo to wszystkie polskie znaki mi się wysypują. Zamiast polskich znaków, pojawiają się tylko znaki zapytania i ten dziwny kwadracik zamiast literki "ó". Podejrzewam, że to problem z kodowaniem w bazie, ponieważ:
Zmieniałem kodowania w bazie wszędzie gdzie tylko mogłem. Czy ktoś mi może powiedzieć w czym jest problem? Na koniec dodam jeszcze, że wgrywając bazę użyłem takiej funkcji dla poprawnego kodowania:
Ten post edytował miniol 31.03.2011, 13:21:52 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 27.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
a jak teraz dodasz cos do bazy i potem wyswietlisz to masz dobre kodowanie, czy zle? ja tak mialem wlasnie ze starymi
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie dodałem nowy rekord i on również wyświetla się błędnie.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 27.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
teraz zauwazylem
![]() powinno byc utf8_polish_ci a ty masz utf8_general_ci zmien sobie w phpmyadmin |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ale co konkretnie zmienić?
Zmieniłem: System porównań dla połączenia MySQL (w phpmyadmin) na utf8_polish_ci Metoda porównań napisów mojej bazy na utf8_polish_ci Metoda porównań napisów mojej tabeli na utf8_polish_ci Pole tekstowe w mojej tabeli też na utf8_polish_ci I nadal nic ;/ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 27.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
a teraz jak dodajesz na nowo to znowu ten sam blad? bo starych pewnie czytac nie bedzie, ale nowe powinno
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Przy nowych rekordach nadal nic
![]() Wydaje mi się, że trzeba się skupić na tym, że mysql_client_encoding wywala mi wartość latin1, a powinien wywalić utf8. Grzebałem teraz już nawet w konfiguracji mysql i znalazłem takie dwie linijki ciekawe: character-set-server=latin2 default-character-set=latin2 Jednak nawet jeśli zmieniam latin2 na utf8 to nic to nie pomaga. Zmieniałem też na latin1, i oczywiście też żadnego efektu to nie przyniosło. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 39 Pomógł: 4 Dołączył: 27.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
ale Tobie i tak zwracalo latin1, a nie latin2.
sprobuj uzyc PDO http://pl.wikibooks.org/wiki/PHP/Biblioteka_PDO Temat: MYSQL Polskie znaki a moze szablon strony masz zly? jak wpiszesz cos tak po prostu w html z polskimi znakami, albo przez echo to dziala? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 362 Pomógł: 44 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
powinno byc utf8_polish_ci a ty masz utf8_general_ci No nie do końca bo powinno być utf8_unicode_ci dodatkowo w pliku łączenia się z bazą danych dodaj sobie zaraz po mysql_select_db i sprawdź czy plik z baza jest w utf-8 -------------------- WebLemon.pl - projektowanie stron www, reklama i PR w internecie - Adwords, Facebook.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 4 Dołączył: 25.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
No nie do końca bo powinno być utf8_unicode_ci dodatkowo w pliku łączenia się z bazą danych dodaj sobie zaraz po mysql_select_db i sprawdź czy plik z baza jest w utf-8 Wstawiłem SET NAMES 'utf8' zaraz po mysql_select_db i wszystko działa pięknie ![]() Dzięki za pomoc. Temat do zamknięcia ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 07:52 |